$abs (aggregation)

    在本页面

    $abs

    version 3.2 中的新内容。

    返回数字的绝对 value。

    $abs具有以下语法:

    1. { $abs: <number> }

    <number>表达式可以是任何有效的表达,因为它解析为数字。有关表达式的更多信息,请参阅表达式。

    行为

    如果参数解析为的值或引用缺少的字段,则$abs返回null。如果参数解析为NaN,则$abs返回NaN

    例子 结果
    { $abs: -1 } 1
    { $abs: 1 } 1
    { $abs: null } null

    例子

    集合ratings包含以下文档:

    1. { _id: 1, start: 5, end: 8 }
    2. { _id: 2, start: 4, end: 4 }
    3. { _id: 3, start: 9, end: 7 }
    4. { _id: 4, start: 6, end: 7 }

    以下 example 计算startend评级之间的差异大小:

    1. db.ratings.aggregate([
    2. {
    3. $project: { delta: { $abs: { $subtract: [ "$start", "$end" ] } } }
    4. }
    5. ])

    该操作返回以下结果:

    1. { "_id" : 1, "delta" : 3 }
    2. { "_id" : 2, "delta" : 0 }
    3. { "_id" : 3, "delta" : 2 }
    4. { "_id" : 4, "delta" : 1 }

    译者:李冠飞

    校对: