# AggregateCommand.abs(value: Expression<number>): Object
聚合操作符。返回一个数字的绝对值。
# 参数
# value: Expression<number>
number
# 返回值
# Object
# API 说明
语法如下:
db.command.aggregate.abs(<number>)
abs
传入的值除了数字常量外,也可以是任何最终解析成一个数字的表达式。
如果表达式解析为 null
或者指向一个不存在的字段,则 abs
的结果是 null
。如果值解析为 NaN
,则结果是 NaN
。
# 示例代码
假设集合 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
之间的绝对差异大小:
const $ = db.command.aggregate
db.collection('ratings').aggregate()
.project({
delta: $.abs($.subtract(['$start', '$end']))
})
.end()
返回结果如下:
{ "_id" : 1, "delta" : 3 }
{ "_id" : 2, "delta" : 0 }
{ "_id" : 3, "delta" : 2 }
{ "_id" : 4, "delta" : 1 }