$abs (aggregation)

在本页面

Definition

  • $abs
    • 3.2 版中的新功能。

返回数字的绝对值。

$abs具有以下语法:

{ $abs: <number> }

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

Behavior

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

ExampleResults
{ $abs: -1 }1
{ $abs: 1 }1
{ $abs: null }null

Example

集合ratings包含以下文档:

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

以下示例计算startend等级之间的差异的大小:

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

该操作返回以下结果:

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