$abs
聚合操作符用于返回数值的绝对值。
语法
js
{ $abs: <数值> }
<数值>
表达式可以是任何能被解析为数值的合法表达式。
用法
如果$abs
的<number>
参数被解析为null
值或引用不存在的字段,将返回null
,如果参数被解析为NaN
,也会返回NaN
。
例如 | 结果 |
---|---|
{abs:-1} |
1 |
{abs:1} |
1 |
{abs:-0.01} |
-.01 |
{abs:null} |
null |
举例
集合temperatureChange
包含下面的文档:
js
db.temperatureChange.insertMany( [
{ _id: 1, startTemp: 50, endTemp: 80 },
{ _id: 2, startTemp: 40, endTemp: 40 },
{ _id: 3, startTemp: 90, endTemp: 70 },
{ _id: 4, startTemp: 60, endTemp: 70 }
] )
下面的例子计算startTemp
和endTemp
之间的差值:
js
db.temperatureChange.aggregate([
{
$project: { delta: { $abs: { $subtract: [ "$startTemp", "$endTemp" ] } } }
}
])
操作返回的结果如下:
json
{ "_id" : 1, "delta" : 30 }
{ "_id" : 2, "delta" : 0 }
{ "_id" : 3, "delta" : 20 }
{ "_id" : 4, "delta" : 10 }