upsertOne
open suspend override fun upsertOne(options: UpdateOptions<Document>.() -> Unit, filter: FilterQuery<Document>.() -> Unit, update: UpsertQuery<Document>.() -> Unit)(source)
Updates a single document that matches filter according to update.
If multiple documents match filter, only the first one is updated.
If no documents match filter, a new one is created.
Example
class User(
val name: String,
val age: Int,
)
collection.upsertOne(
filter = {
User::name eq "Patrick"
},
update = {
User::age set 15
},
)
Content copied to clipboard
If a document exists that has the name
of "Patrick", its age is set to 15. If none exists, a document with name
"Patrick" and age
15 is created.
Using filtered collections
The following code is equivalent:
collection.filter {
User::name eq "Patrick"
}.upsertOne {
User::age set 15
}
Content copied to clipboard
To learn more, see filter.