arrayFilter

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