Skip to content

MongoDB request DSLopensavvy.ktmongo.dsl.aggregation.operatorsTypeValueOperatorstoDouble

toDouble

open fun <R : Any> Value<R, *>.toDouble(): Value<R, Double>

Converts this value to a BsonType.Double.

Conversion algorithm

BsonType.Double is returned as itself.

BsonType.Int32 and BsonType.Int64 are extended to a double.

BsonType.Boolean becomes 1 if true and 0 if false.

BsonType.Decimal128 is converted if it is within the possible range of a double value. Otherwise, an exception is thrown.

BsonType.String is parsed as a double. Only base 10 numbers can be parsed. If the value is outside the range of a double, an exception is thrown. "-5.5" and "123456" are two valid examples.

BsonType.Datetime returns the number of milliseconds since the epoch.

BsonType.Null always returns null.

Other types throw an exception.

Example

class Metric(
    val instant: Instant,
    val millis: Double
)

users.aggregate()
    .set {
        User::millis set of(Metric::instant).toDouble()
    }

External resources

See also