$abs (aggregation)
在本页面
Definition
$abs
- 3.2 版中的新功能。
返回数字的绝对值。
$abs具有以下语法:
{ $abs: <number> }
<number>
表达式可以是任何有效的expression,只要它可以解析为数字。有关表达式的更多信息,请参见Expressions。
Behavior
如果参数解析为null
的值或引用了缺少的字段,则$abs
返回null
。如果参数解析为NaN
,则$abs
返回NaN
。
Example | Results |
---|---|
{ $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 }
以下示例计算start
和end
等级之间的差异的大小:
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 }