From: TheSaminator Date: Tue, 31 May 2022 17:11:15 +0000 (-0400) Subject: Replace insert with upsert X-Git-Url: https://gitweb.starshipfights.net/?a=commitdiff_plain;h=ae26088536bdbbc7462faea8596ad3a0031aa4dd;p=starship-fights Replace insert with upsert --- diff --git a/src/jvmMain/kotlin/starshipfights/data/data_documents.kt b/src/jvmMain/kotlin/starshipfights/data/data_documents.kt index 948739b..64a0e64 100644 --- a/src/jvmMain/kotlin/starshipfights/data/data_documents.kt +++ b/src/jvmMain/kotlin/starshipfights/data/data_documents.kt @@ -7,8 +7,9 @@ import kotlinx.coroutines.flow.Flow import kotlinx.serialization.SerialName import org.bson.conversions.Bson import org.litote.kmongo.coroutine.coroutine -import org.litote.kmongo.insertOne +import org.litote.kmongo.replaceOne import org.litote.kmongo.serialization.IdController +import org.litote.kmongo.util.KMongoUtil import org.slf4j.Logger import org.slf4j.LoggerFactory import kotlin.coroutines.CoroutineContext @@ -97,7 +98,9 @@ private class DocumentTableImpl>(val kclass: KClass, priv override suspend fun put(docs: Iterable) { collection().bulkWrite( - docs.map { insertOne(it) }, + docs.map { doc -> + replaceOne(KMongoUtil.idFilterQuery(doc.id), doc, ReplaceOptions().upsert(true)) + }, BulkWriteOptions().ordered(false) ) }