DateTimeValueOperators

Operators to manage date and time values.

To learn more about aggregation operators, view AggregationOperators.

Inheritors

Properties

Link copied to clipboard
abstract override val context: BsonContext

The strategy used when converting from KProperty1 to Field.

Link copied to clipboard
@get:JvmName(name = "dayOfMonthOfObjectId")
val <R : Any> KProperty1<R, ObjectId>.dayOfMonth: Value<R, Int>
@get:JvmName(name = "dayOfMonthOfTimestamp")
val <R : Any> KProperty1<R, Timestamp>.dayOfMonth: Value<R, Int>
@get:JvmName(name = "dayOfMonthOfObjectId")
val ObjectId.dayOfMonth: Value<Any, Int>
@get:JvmName(name = "dayOfMonthOfTimestamp")
val Timestamp.dayOfMonth: Value<Any, Int>
open val <R : Any> Value<R, Instant>.dayOfMonth: Value<R, Int>
@get:JvmName(name = "dayOfMonthOfObjectId")
val <R : Any> Value<R, ObjectId>.dayOfMonth: Value<R, Int>
@get:JvmName(name = "dayOfMonthOfTimestamp")
val <R : Any> Value<R, Timestamp>.dayOfMonth: Value<R, Int>
open val <R : Any> Field<R, Instant>.dayOfMonth: Value<R, Int>
@get:JvmName(name = "dayOfMonthOfObjectId")
val <R : Any> Field<R, ObjectId>.dayOfMonth: Value<R, Int>
@get:JvmName(name = "dayOfMonthOfTimestamp")
val <R : Any> Field<R, Timestamp>.dayOfMonth: Value<R, Int>

Returns the day of the month for a date as a number between 1 and 31.

Link copied to clipboard
@get:JvmName(name = "dayOfWeekISOOfObjectId")
val <R : Any> KProperty1<R, ObjectId>.dayOfWeekISO: Value<R, Int>
@get:JvmName(name = "dayOfWeekISOOfTimestamp")
val <R : Any> KProperty1<R, Timestamp>.dayOfWeekISO: Value<R, Int>
@get:JvmName(name = "dayOfWeekISOOfObjectId")
val ObjectId.dayOfWeekISO: Value<Any, Int>
@get:JvmName(name = "dayOfWeekISOOfTimestamp")
val Timestamp.dayOfWeekISO: Value<Any, Int>
open val <R : Any> Value<R, Instant>.dayOfWeekISO: Value<R, Int>
@get:JvmName(name = "dayOfWeekISOOfObjectId")
val <R : Any> Value<R, ObjectId>.dayOfWeekISO: Value<R, Int>
@get:JvmName(name = "dayOfWeekISOOfTimestamp")
val <R : Any> Value<R, Timestamp>.dayOfWeekISO: Value<R, Int>
open val <R : Any> Field<R, Instant>.dayOfWeekISO: Value<R, Int>
@get:JvmName(name = "dayOfWeekISOOfObjectId")
val <R : Any> Field<R, ObjectId>.dayOfWeekISO: Value<R, Int>
@get:JvmName(name = "dayOfWeekISOOfTimestamp")
val <R : Any> Field<R, Timestamp>.dayOfWeekISO: Value<R, Int>

Returns the day of the week in ISO 8601 format, ranging from 1 (for Monday) to 7 (for Sunday).

Link copied to clipboard
@get:JvmName(name = "dayOfWeekUSOfObjectId")
val <R : Any> KProperty1<R, ObjectId>.dayOfWeekUS: Value<R, Int>
@get:JvmName(name = "dayOfWeekUSOfTimestamp")
val <R : Any> KProperty1<R, Timestamp>.dayOfWeekUS: Value<R, Int>
@get:JvmName(name = "dayOfWeekUSOfObjectId")
val ObjectId.dayOfWeekUS: Value<Any, Int>
@get:JvmName(name = "dayOfWeekUSOfTimestamp")
val Timestamp.dayOfWeekUS: Value<Any, Int>
open val <R : Any> Value<R, Instant>.dayOfWeekUS: Value<R, Int>
@get:JvmName(name = "dayOfWeekUSOfObjectId")
val <R : Any> Value<R, ObjectId>.dayOfWeekUS: Value<R, Int>
@get:JvmName(name = "dayOfWeekUSOfTimestamp")
val <R : Any> Value<R, Timestamp>.dayOfWeekUS: Value<R, Int>
open val <R : Any> Field<R, Instant>.dayOfWeekUS: Value<R, Int>
@get:JvmName(name = "dayOfWeekUSOfObjectId")
val <R : Any> Field<R, ObjectId>.dayOfWeekUS: Value<R, Int>
@get:JvmName(name = "dayOfWeekUSOfTimestamp")
val <R : Any> Field<R, Timestamp>.dayOfWeekUS: Value<R, Int>

Returns the day of the week for a date as a number between 1 (Sunday) and 7 (Saturday).

Link copied to clipboard
@get:JvmName(name = "dayOfYearOfObjectId")
val <R : Any> KProperty1<R, ObjectId>.dayOfYear: Value<R, Int>
@get:JvmName(name = "dayOfYearOfTimestamp")
val <R : Any> KProperty1<R, Timestamp>.dayOfYear: Value<R, Int>
@get:JvmName(name = "dayOfYearOfObjectId")
val ObjectId.dayOfYear: Value<Any, Int>
@get:JvmName(name = "dayOfYearOfTimestamp")
val Timestamp.dayOfYear: Value<Any, Int>
open val <R : Any> Value<R, Instant>.dayOfYear: Value<R, Int>
@get:JvmName(name = "dayOfYearOfObjectId")
val <R : Any> Value<R, ObjectId>.dayOfYear: Value<R, Int>
@get:JvmName(name = "dayOfYearOfTimestamp")
val <R : Any> Value<R, Timestamp>.dayOfYear: Value<R, Int>
open val <R : Any> Field<R, Instant>.dayOfYear: Value<R, Int>
@get:JvmName(name = "dayOfYearOfObjectId")
val <R : Any> Field<R, ObjectId>.dayOfYear: Value<R, Int>
@get:JvmName(name = "dayOfYearOfTimestamp")
val <R : Any> Field<R, Timestamp>.dayOfYear: Value<R, Int>

Returns the day of the year for a date as a number between 1 and 366.

Link copied to clipboard

Converts a Kotlin property into a Field.

Link copied to clipboard
open val <R : Any> KProperty1<R, Instant>.hour: Value<R, Int>
@get:JvmName(name = "hourOfObjectId")
val <R : Any> KProperty1<R, ObjectId>.hour: Value<R, Int>
@get:JvmName(name = "hourOfTimestamp")
val <R : Any> KProperty1<R, Timestamp>.hour: Value<R, Int>
open val Instant.hour: Value<Any, Int>
@get:JvmName(name = "hourOfObjectId")
val ObjectId.hour: Value<Any, Int>
@get:JvmName(name = "hourOfTimestamp")
val Timestamp.hour: Value<Any, Int>
open val <R : Any> Value<R, Instant>.hour: Value<R, Int>
@get:JvmName(name = "hourOfObjectId")
val <R : Any> Value<R, ObjectId>.hour: Value<R, Int>
@get:JvmName(name = "hourOfTimestamp")
val <R : Any> Value<R, Timestamp>.hour: Value<R, Int>
open val <R : Any> Field<R, Instant>.hour: Value<R, Int>
@get:JvmName(name = "hourOfObjectId")
val <R : Any> Field<R, ObjectId>.hour: Value<R, Int>
@get:JvmName(name = "hourOfTimestamp")
val <R : Any> Field<R, Timestamp>.hour: Value<R, Int>

Returns the hour portion of a date as a number between 0 and 23.

Link copied to clipboard
@get:JvmName(name = "millisecondOfObjectId")
val <R : Any> KProperty1<R, ObjectId>.millisecond: Value<R, Int>
@get:JvmName(name = "millisecondOfTimestamp")
val <R : Any> KProperty1<R, Timestamp>.millisecond: Value<R, Int>
@get:JvmName(name = "millisecondOfObjectId")
val ObjectId.millisecond: Value<Any, Int>
@get:JvmName(name = "millisecondOfTimestamp")
val Timestamp.millisecond: Value<Any, Int>
open val <R : Any> Value<R, Instant>.millisecond: Value<R, Int>
@get:JvmName(name = "millisecondOfObjectId")
val <R : Any> Value<R, ObjectId>.millisecond: Value<R, Int>
@get:JvmName(name = "millisecondOfTimestamp")
val <R : Any> Value<R, Timestamp>.millisecond: Value<R, Int>
open val <R : Any> Field<R, Instant>.millisecond: Value<R, Int>
@get:JvmName(name = "millisecondOfObjectId")
val <R : Any> Field<R, ObjectId>.millisecond: Value<R, Int>
@get:JvmName(name = "millisecondOfTimestamp")
val <R : Any> Field<R, Timestamp>.millisecond: Value<R, Int>

Returns the millisecond portion of a date as a number between 0 and 999.

Link copied to clipboard
open val <R : Any> KProperty1<R, Instant>.minute: Value<R, Int>
@get:JvmName(name = "minuteOfObjectId")
val <R : Any> KProperty1<R, ObjectId>.minute: Value<R, Int>
@get:JvmName(name = "minuteOfTimestamp")
val <R : Any> KProperty1<R, Timestamp>.minute: Value<R, Int>
open val Instant.minute: Value<Any, Int>
@get:JvmName(name = "minuteOfObjectId")
val ObjectId.minute: Value<Any, Int>
@get:JvmName(name = "minuteOfTimestamp")
val Timestamp.minute: Value<Any, Int>
open val <R : Any> Value<R, Instant>.minute: Value<R, Int>
@get:JvmName(name = "minuteOfObjectId")
val <R : Any> Value<R, ObjectId>.minute: Value<R, Int>
@get:JvmName(name = "minuteOfTimestamp")
val <R : Any> Value<R, Timestamp>.minute: Value<R, Int>
open val <R : Any> Field<R, Instant>.minute: Value<R, Int>
@get:JvmName(name = "minuteOfObjectId")
val <R : Any> Field<R, ObjectId>.minute: Value<R, Int>
@get:JvmName(name = "minuteOfTimestamp")
val <R : Any> Field<R, Timestamp>.minute: Value<R, Int>

Returns the minute portion of a date as a number between 0 and 59.

Link copied to clipboard
open val <R : Any> KProperty1<R, Instant>.month: Value<R, Int>
@get:JvmName(name = "monthOfObjectId")
val <R : Any> KProperty1<R, ObjectId>.month: Value<R, Int>
@get:JvmName(name = "monthOfTimestamp")
val <R : Any> KProperty1<R, Timestamp>.month: Value<R, Int>
open val Instant.month: Value<Any, Int>
@get:JvmName(name = "monthOfObjectId")
val ObjectId.month: Value<Any, Int>
@get:JvmName(name = "monthOfTimestamp")
val Timestamp.month: Value<Any, Int>
open val <R : Any> Value<R, Instant>.month: Value<R, Int>
@get:JvmName(name = "monthOfObjectId")
val <R : Any> Value<R, ObjectId>.month: Value<R, Int>
@get:JvmName(name = "monthOfTimestamp")
val <R : Any> Value<R, Timestamp>.month: Value<R, Int>
open val <R : Any> Field<R, Instant>.month: Value<R, Int>
@get:JvmName(name = "monthOfObjectId")
val <R : Any> Field<R, ObjectId>.month: Value<R, Int>
@get:JvmName(name = "monthOfTimestamp")
val <R : Any> Field<R, Timestamp>.month: Value<R, Int>

Returns the month of a date as a number between 1 and 12.

Link copied to clipboard
open val <R : Any> KProperty1<R, Instant>.second: Value<R, Int>
@get:JvmName(name = "secondOfObjectId")
val <R : Any> KProperty1<R, ObjectId>.second: Value<R, Int>
@get:JvmName(name = "secondOfTimestamp")
val <R : Any> KProperty1<R, Timestamp>.second: Value<R, Int>
open val Instant.second: Value<Any, Int>
@get:JvmName(name = "secondOfObjectId")
val ObjectId.second: Value<Any, Int>
@get:JvmName(name = "secondOfTimestamp")
val Timestamp.second: Value<Any, Int>
open val <R : Any> Value<R, Instant>.second: Value<R, Int>
@get:JvmName(name = "secondOfObjectId")
val <R : Any> Value<R, ObjectId>.second: Value<R, Int>
@get:JvmName(name = "secondOfTimestamp")
val <R : Any> Value<R, Timestamp>.second: Value<R, Int>
open val <R : Any> Field<R, Instant>.second: Value<R, Int>
@get:JvmName(name = "secondOfObjectId")
val <R : Any> Field<R, ObjectId>.second: Value<R, Int>
@get:JvmName(name = "secondOfTimestamp")
val <R : Any> Field<R, Timestamp>.second: Value<R, Int>

Returns the second portion of a date as a number between 0 and 60 (leap seconds).

Link copied to clipboard
open val <R : Any> KProperty1<R, Instant>.weekISO: Value<R, Int>
@get:JvmName(name = "weekISOOfObjectId")
val <R : Any> KProperty1<R, ObjectId>.weekISO: Value<R, Int>
@get:JvmName(name = "weekISOOfTimestamp")
val <R : Any> KProperty1<R, Timestamp>.weekISO: Value<R, Int>
@get:JvmName(name = "weekISOOfObjectId")
val ObjectId.weekISO: Value<Any, Int>
@get:JvmName(name = "weekISOOfTimestamp")
val Timestamp.weekISO: Value<Any, Int>
open val <R : Any> Value<R, Instant>.weekISO: Value<R, Int>
@get:JvmName(name = "weekISOOfObjectId")
val <R : Any> Value<R, ObjectId>.weekISO: Value<R, Int>
@get:JvmName(name = "weekISOOfTimestamp")
val <R : Any> Value<R, Timestamp>.weekISO: Value<R, Int>
open val <R : Any> Field<R, Instant>.weekISO: Value<R, Int>
@get:JvmName(name = "weekISOOfObjectId")
val <R : Any> Field<R, ObjectId>.weekISO: Value<R, Int>
@get:JvmName(name = "weekISOOfTimestamp")
val <R : Any> Field<R, Timestamp>.weekISO: Value<R, Int>

Returns the week number in ISO 8601 format, ranging from 1 to 53.

Link copied to clipboard
open val <R : Any> KProperty1<R, Instant>.weekUS: Value<R, Int>
@get:JvmName(name = "weekUSOfObjectId")
val <R : Any> KProperty1<R, ObjectId>.weekUS: Value<R, Int>
@get:JvmName(name = "weekUSOfTimestamp")
val <R : Any> KProperty1<R, Timestamp>.weekUS: Value<R, Int>
open val Instant.weekUS: Value<Any, Int>
@get:JvmName(name = "weekUSOfObjectId")
val ObjectId.weekUS: Value<Any, Int>
@get:JvmName(name = "weekUSOfTimestamp")
val Timestamp.weekUS: Value<Any, Int>
open val <R : Any> Value<R, Instant>.weekUS: Value<R, Int>
@get:JvmName(name = "weekUSOfObjectId")
val <R : Any> Value<R, ObjectId>.weekUS: Value<R, Int>
@get:JvmName(name = "weekUSOfTimestamp")
val <R : Any> Value<R, Timestamp>.weekUS: Value<R, Int>
open val <R : Any> Field<R, Instant>.weekUS: Value<R, Int>
@get:JvmName(name = "weekUSOfObjectId")
val <R : Any> Field<R, ObjectId>.weekUS: Value<R, Int>
@get:JvmName(name = "weekUSOfTimestamp")
val <R : Any> Field<R, Timestamp>.weekUS: Value<R, Int>

Returns the week of the year for a date, ranging from 0 to 53.

Link copied to clipboard
open val <R : Any> KProperty1<R, Instant>.year: Value<R, Int>
@get:JvmName(name = "yearOfObjectId")
val <R : Any> KProperty1<R, ObjectId>.year: Value<R, Int>
@get:JvmName(name = "yearOfTimestamp")
val <R : Any> KProperty1<R, Timestamp>.year: Value<R, Int>
open val Instant.year: Value<Any, Int>
@get:JvmName(name = "yearOfObjectId")
val ObjectId.year: Value<Any, Int>
@get:JvmName(name = "yearOfTimestamp")
val Timestamp.year: Value<Any, Int>
open val <R : Any> Value<R, Instant>.year: Value<R, Int>
@get:JvmName(name = "yearOfObjectId")
val <R : Any> Value<R, ObjectId>.year: Value<R, Int>
@get:JvmName(name = "yearOfTimestamp")
val <R : Any> Value<R, Timestamp>.year: Value<R, Int>
open val <R : Any> Field<R, Instant>.year: Value<R, Int>
@get:JvmName(name = "yearOfObjectId")
val <R : Any> Field<R, ObjectId>.year: Value<R, Int>
@get:JvmName(name = "yearOfTimestamp")
val <R : Any> Field<R, Timestamp>.year: Value<R, Int>

Returns the year portion of a date.

Link copied to clipboard
@get:JvmName(name = "yearOfISOWeekOfObjectId")
val <R : Any> KProperty1<R, ObjectId>.yearOfISOWeek: Value<R, Int>
@get:JvmName(name = "yearOfISOWeekOfTimestamp")
val <R : Any> KProperty1<R, Timestamp>.yearOfISOWeek: Value<R, Int>
@get:JvmName(name = "yearOfISOWeekOfObjectId")
val ObjectId.yearOfISOWeek: Value<Any, Int>
@get:JvmName(name = "yearOfISOWeekOfTimestamp")
val Timestamp.yearOfISOWeek: Value<Any, Int>
open val <R : Any> Value<R, Instant>.yearOfISOWeek: Value<R, Int>
@get:JvmName(name = "yearOfISOWeekOfObjectId")
val <R : Any> Value<R, ObjectId>.yearOfISOWeek: Value<R, Int>
@get:JvmName(name = "yearOfISOWeekOfTimestamp")
val <R : Any> Value<R, Timestamp>.yearOfISOWeek: Value<R, Int>
open val <R : Any> Field<R, Instant>.yearOfISOWeek: Value<R, Int>
@get:JvmName(name = "yearOfISOWeekOfObjectId")
val <R : Any> Field<R, ObjectId>.yearOfISOWeek: Value<R, Int>
@get:JvmName(name = "yearOfISOWeekOfTimestamp")
val <R : Any> Field<R, Timestamp>.yearOfISOWeek: Value<R, Int>

Returns the year in ISO 8601 format, corresponding to the ISO week number returned by weekISO.

Functions

Link copied to clipboard
@JvmName(name = "divResultReceiver")
inline operator fun <Context : Any, Root, Child> Root.div(field: KProperty1<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>
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: KProperty1<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>

Refers to field as a nested field of the current value.

open operator fun <Root, Parent, Child> KProperty1<Root, Parent>.div(child: KProperty1<Parent & Any, Child>): Field<Root, Child>
open operator fun <Root, Type, Child> Field<Root, Type>.div(child: KProperty1<in Type & Any, Child>): Field<Root, Child>
open operator fun <Root, Type, Child> Field<Root, Type>.div(child: Field<Type, Child>): Field<Root, Child>

Refers to child as a nested field of the current field.

Link copied to clipboard
open operator fun <Root, Type> KProperty1<Root, Collection<Type>>.get(index: Int): Field<Root, Type>
open operator fun <Root, Type> Field<Root, Collection<Type>>.get(index: Int): Field<Root, Type>

Refers to a specific item in an array, by its index.

open operator fun <Root, Type> KProperty1<Root, Map<String, Type>>.get(index: String): Field<Root, Type>
open operator fun <Root, Type> Field<Root, Map<String, Type>>.get(key: String): Field<Root, Type>

Refers to a specific item in a map, by its name.

Link copied to clipboard
inline fun <Result> of(value: Result): Value<Any, Result>
open fun <Result> of(value: Result, type: KType): Value<Any, Result>

Refers to a Kotlin value within an aggregation value.

open fun <Context : Any, Result> of(field: Field<Context, Result>): Value<Context, Result>

Refers to a field within an aggregation value.

open fun of(value: BsonType): Value<Any, BsonType>

Refers to a BsonType within an aggregation value.

Link copied to clipboard
open infix fun <Root, Child> KProperty1<Root, *>.unsafe(child: String): Field<Root, Child>
open infix fun <Root, Type, Child> Field<Root, Type>.unsafe(child: String): Field<Root, Child>

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>
open infix fun <Root, Child> KProperty1<Root, *>.unsafe(child: Field<*, Child>): Field<Root, Child>
open infix fun <Root, Child> Field<Root, *>.unsafe(child: KProperty1<*, Child>): Field<Root, Child>
open infix fun <Root, Child> Field<Root, *>.unsafe(child: Field<*, 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.