From ae26088536bdbbc7462faea8596ad3a0031aa4dd Mon Sep 17 00:00:00 2001 From: TheSaminator Date: Tue, 31 May 2022 13:11:15 -0400 Subject: [PATCH] Replace insert with upsert --- src/jvmMain/kotlin/starshipfights/data/data_documents.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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) ) } -- 2.25.1