WithArrayFilters¶
interface WithArrayFilters : Options
Specifies which array elements should be updated by UpdateQuery.filter.
See arrayFilter.
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.
arrayFilter¶
open fun <Item> arrayFilter(id: String, filter: ArrayFiltersOptionDsl<Item>.(it: Field<ArrayFiltersOptionDsl.IteratorType<Item>, Item>) -> Unit)
Declares an array filter, which can then be passed to UpdateQuery.filter.
To learn more about the usage of array filters, see UpdateQuery.filter.
Example
class User(
val name: String,
val age: Int,
val score: Int,
)
class Group(
val _id: ObjectId,
val users: List<User>,
)
groups.updateOne(
filter = {
Group::_id eq ObjectId("…")
},
options = {
arrayFilter("adult") {
it / User::age gte 18
}
},
update = {
Group::users.filter("adult") / User::score inc 1
}
)
Note the it parameter in the arrayFilter function, which allows declaring a filter expression on a given element. The arrayFilter block accepts the same syntax as find().
Note that UpdateQuery.filter has an overload that registers the option automatically. If you use it, you don't need to call this function at all.
External resources
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¶
writeTo¶
@LowLevelApi
abstract override fun writeTo(writer: BsonFieldWriter)
Writes the result of simplifying this expression into writer.