WithWriteConcern¶
interface WithWriteConcern : Options
Consistency guarantees for this request.
See writeConcern.
Inheritors¶
Properties¶
allOptions¶
@LowLevelApi
abstract val allOptions: List<Option>
The full list of options set on this container.
Specific options are usually searched using the option extension.
context¶
@LowLevelApi
abstract val context: BsonContext
The context used to generate this expression.
Functions¶
accept¶
@LowLevelApi
@DangerousMongoApi
abstract override fun accept(node: BsonNode)
Adds a new node as a child of this one.
acceptAll¶
@LowLevelApi
@DangerousMongoApi
fun <N : Node> CompoundNode<N>.acceptAll(nodes: Iterable<N>)
Adds any number of nodes into this one.
freeze¶
@LowLevelApi
abstract override fun freeze()
Makes this expression immutable.
option¶
Accesses the value of a given Option.
For example, if we have a helper function that sets some default options, and we want to know what maximum limit it set, we can use:
simplify¶
@LowLevelApi
abstract fun simplify(): BsonNode?
Returns a simplified (but equivalent) expression to the current expression.
toBson¶
@LowLevelApi
open fun toBson(): BsonDocument
Writes the result of simplifying to a new BsonDocument.
toString¶
writeConcern¶
open fun writeConcern(concern: WriteConcern)
Specifies the WriteConcern for this operation.
The write concern specifies which nodes must acknowledge having applied this write operation. The stronger the write concern, the less chance of data loss, but the higher the latency.
To learn more about the different options, see:
-
WriteConcern.acknowledgment: how many nodes should acknowledge this request? -
WriteConcern.writeToJournal: should the nodes also acknowledge synchronizing their journal? -
WriteConcern.writeTimeout: after how long should we give up on the acknowledgment, if it doesn't succeed?
Example
collections.updateMany(
options = {
writeConcern(WriteConcern(Majority, writeTimeout = 2.seconds))
}
) {
User::age inc 1
}
Convenience helpers
For convenience of the most common scenarii, KtMongo provides the following helpers:
-
WriteConcern.Majority: requests strong acknowledgment from the majority of nodes. -
WriteConcern.Primary: requests weak acknowledgment from the primary node. -
WriteConcern.FireAndForget: requests no acknowledgment at all.
Transactions
In multi-document transactions, only specify a write concern at the transaction level, and not at the level of individual operation.
External resources
writeTo¶
@LowLevelApi
abstract override fun writeTo(writer: BsonFieldWriter)
Writes the result of simplifying this expression into writer.