ConditionalValueOperators¶
interface ConditionalValueOperators : ValueOperators
Operators to conditionally create a value.
To learn more about aggregation operators, view AggregationOperators.
Inheritors¶
Properties¶
context¶
@LowLevelApi
abstract override val context: BsonContext
The strategy used when converting from KProperty1 to Field.
field¶
Converts a Kotlin property into a Field.
Functions¶
cond¶
Decides between two values depending on the evaluation of a boolean value.
Example¶
class User(
val name: String,
val score: Int,
val multiplier: Int,
)
users.updateManyWithPipeline {
set {
User::score set cond(
condition = of(User::multiplier) gt of(2),
ifTrue = of(User::score) * of(User::multiplier),
ifFalse = of(User::score)
)
}
}
External resources¶
See also
ConditionalValueOperators.switch: Specify multiple conditions.
div¶
Refers to field as a nested field of the current value.
Examples¶
class User(
val name: String,
)
class Data(
val users: List<User>,
val userNames: List<Int>,
)
data.aggregate()
.set {
Data::userNames set Data::users.map { it / User::name }
}
External resources¶
Refers to field as a nested field of the current value.
Examples¶
class User(
val name: String,
)
class Data(
val users: List<User>,
val userNames: List<Int>,
)
data.aggregate()
.set {
Data::userNames set Data::users.map { it / User::name }
}
External resources¶
get¶
Refers to a specific item in an array, by its index.
Refers to a specific item in a map, by its name.
Refers to a specific item in an array, by its index.
Refers to a specific item in a map, by its name.
of¶
Refers to a field within an aggregation value.
Example¶
Refers to a field within an aggregation value.
Example¶
Refers to a Kotlin value within an aggregation value.
Example¶
Refers to a BsonType within an aggregation value.
Example¶
switch¶
Selects one value based on multiple conditions.
Example¶
class User(
val name: String,
val score: Int,
val role: String,
val bonus: Int?,
)
users.updateManyWithPipeline {
set {
User::bonus set switch(
of(User::role) eq of("GUEST") to of(5),
of(User::role) eq of("EMPLOYEE") to of(6),
of(User::role) eq of("ADMIN") to of(7),
default = of(-1)
)
}
}
External resources¶
See also
ConditionalValueOperators.cond: Specify a single condition.
unsafe¶
Refers to a field child of the current field, with no compile-time safety.
open infix fun <Root, Child> KProperty1<Root, *>.unsafe(child: KProperty1<*, Child>): Field<Root, Child>
Refers to a field child of the current field, without checking that it is a field available on the current object.
Refers to a field child of the current field, without checking that it is a field available on the current object.
Refers to a field child of the current field, without checking that it is a field available on the current object.
Refers to a field child of the current field, without checking that it is a field available on the current object.
Refers to a field child of the current field, with no compile-time safety.