ComparisonValueOperators¶
interface ComparisonValueOperators : ValueOperators
Operators to compare two values.
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¶
div¶
open operator fun <Context : Any, Root, Child> Value<Context, Root>.div(field: Field<Root, Child>): Value<Context, Child>
@JvmName(name = "divFieldReceiver")
open operator fun <Context : Any, Root, Child> Field<Context, Root>.div(field: Field<Root, Child>): Value<Context, Child>
@JvmName(name = "divResultReceiver")
inline operator fun <Context : Any, Root, Child> Root.div(field: Field<Root, Child>): Value<Context, Child>
open operator fun <Context : Any, Root, Child> Value<Context, Root>.div(field: KProperty1<Root, Child>): Value<Context, Child>
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
eq¶
open infix fun <Context : Any, Result> Value<Context, Result>.eq(other: Value<Context, Result>): Value<Context, Boolean>
@JvmName(name = "eqByField")
open infix fun <Context : Any, Result> Value<Context, Result>.eq(other: Field<Context, Result>): Value<Context, Boolean>
@JvmName(name = "eqByProperty")
open infix fun <Context : Any, Result> Value<Context, Result>.eq(other: KProperty1<Context, Result>): Value<Context, Boolean>
infix inline fun <Context : Any, Result> Value<Context, Result>.eq(other: Result): Value<Context, Boolean>
@JvmName(name = "eqFieldReceiverByValue")
open infix fun <Context : Any, Result> Field<Context, Result>.eq(other: Value<Context, Result>): Value<Context, Boolean>
@JvmName(name = "eqFieldReceiverByField")
open infix fun <Context : Any, Result> Field<Context, Result>.eq(other: Field<Context, Result>): Value<Context, Boolean>
@JvmName(name = "eqFieldReceiverByProperty")
open infix fun <Context : Any, Result> Field<Context, Result>.eq(other: KProperty1<Context, Result>): Value<Context, Boolean>
@JvmName(name = "eqFieldReceiverByResult")
infix inline fun <Context : Any, Result> Field<Context, Result>.eq(other: Result): Value<Context, Boolean>
@JvmName(name = "eqPropertyReceiverByValue")
open infix fun <Context : Any, Result> KProperty1<Context, Result>.eq(other: Value<Context, Result>): Value<Context, Boolean>
@JvmName(name = "eqPropertyReceiverByField")
open infix fun <Context : Any, Result> KProperty1<Context, Result>.eq(other: Field<Context, Result>): Value<Context, Boolean>
@JvmName(name = "eqPropertyReceiverByProperty")
open infix fun <Context : Any, Result> KProperty1<Context, Result>.eq(other: KProperty1<Context, Result>): Value<Context, Boolean>
@JvmName(name = "eqPropertyReceiverByResult")
infix inline fun <Context : Any, Result> KProperty1<Context, Result>.eq(other: Result): Value<Context, Boolean>
@JvmName(name = "eqResultReceiverByValue")
infix inline fun <Context : Any, Result> Result.eq(other: Value<Context, Result>): Value<Context, Boolean>
@JvmName(name = "eqResultReceiverByField")
infix inline fun <Context : Any, Result> Result.eq(other: Field<Context, Result>): Value<Context, Boolean>
Compares two aggregation values and returns true if they are equivalent.
Example
class Product(
val name: String,
val creationDate: Instant,
val releaseDate: Instant,
)
val releasedOnCreation = collection.aggregate()
.match {
expr {
Product::creationDate eq Product::releaseDate
}
}
.toList()
External resources
See also
-
ne: Negation of this operator. -
FilterQuery.eq: Equivalent operator in regular queries.
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.
gt¶
gte¶
lt¶
lte¶
ne¶
open infix fun <Context : Any, Result> Value<Context, Result>.ne(other: Value<Context, Result>): Value<Context, Boolean>
@JvmName(name = "neByField")
open infix fun <Context : Any, Result> Value<Context, Result>.ne(other: Field<Context, Result>): Value<Context, Boolean>
@JvmName(name = "neByProperty")
open infix fun <Context : Any, Result> Value<Context, Result>.ne(other: KProperty1<Context, Result>): Value<Context, Boolean>
infix inline fun <Context : Any, Result> Value<Context, Result>.ne(other: Result): Value<Context, Boolean>
@JvmName(name = "neFieldReceiverByValue")
open infix fun <Context : Any, Result> Field<Context, Result>.ne(other: Value<Context, Result>): Value<Context, Boolean>
@JvmName(name = "neFieldReceiverByField")
open infix fun <Context : Any, Result> Field<Context, Result>.ne(other: Field<Context, Result>): Value<Context, Boolean>
@JvmName(name = "neFieldReceiverByProperty")
open infix fun <Context : Any, Result> Field<Context, Result>.ne(other: KProperty1<Context, Result>): Value<Context, Boolean>
@JvmName(name = "neFieldReceiverByResult")
infix inline fun <Context : Any, Result> Field<Context, Result>.ne(other: Result): Value<Context, Boolean>
@JvmName(name = "nePropertyReceiverByValue")
open infix fun <Context : Any, Result> KProperty1<Context, Result>.ne(other: Value<Context, Result>): Value<Context, Boolean>
@JvmName(name = "nePropertyReceiverByField")
open infix fun <Context : Any, Result> KProperty1<Context, Result>.ne(other: Field<Context, Result>): Value<Context, Boolean>
@JvmName(name = "nePropertyReceiverByProperty")
open infix fun <Context : Any, Result> KProperty1<Context, Result>.ne(other: KProperty1<Context, Result>): Value<Context, Boolean>
@JvmName(name = "nePropertyReceiverByResult")
infix inline fun <Context : Any, Result> KProperty1<Context, Result>.ne(other: Result): Value<Context, Boolean>
@JvmName(name = "neResultReceiverByValue")
infix inline fun <Context : Any, Result> Result.ne(other: Value<Context, Result>): Value<Context, Boolean>
@JvmName(name = "neResultReceiverByField")
infix inline fun <Context : Any, Result> Result.ne(other: Field<Context, Result>): Value<Context, Boolean>
Compares two aggregation values and returns true if they are not equivalent.
Example
class Product(
val name: String,
val creationDate: Instant,
val releaseDate: Instant,
)
val notReleasedOnCreation = collection.aggregate()
.match {
expr {
Product::creationDate ne Product::releaseDate
}
}
.toList()
External resources
See also
-
eq: Negation of this operator. -
FilterQuery.ne: Equivalent operator in regular queries.
of¶
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
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.