Skip to content

WithWriteConcern

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

@LowLevelApi



inline fun <O : Option> Options.option(): O?

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:

collection.count {
    // …

    options {
        println(option<LimitOption>()) // Will print an integer
    }
}

simplify

@LowLevelApi



abstract fun simplify(): BsonNode?

Returns a simplified (but equivalent) expression to the current expression.

toBson

@LowLevelApi



open fun toBson(): Bson

Writes the result of simplifying to a new BSON document.

toString

abstract override fun toString(): String

JSON representation of this option.

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:

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:

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.