MongoDB聚合操作符:$abs

$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 }
] )

下面的例子计算startTempendTemp之间的差值:

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 }
相关推荐
爬山算法21 小时前
Redis(158)Redis的主从同步问题如何解决?
数据库·redis·缓存
2501_941148151 天前
多语言微服务架构与边缘计算技术实践:Python、Java、C++、Go深度解析
数据库
w***z501 天前
MYSQL 创建索引
数据库·mysql
章鱼哥7301 天前
[特殊字符] SpringBoot 自定义系统健康检测:数据库、Redis、表统计、更新时长、系统性能全链路监控
java·数据库·redis
5***E6851 天前
MySQL:drop、delete与truncate区别
数据库·mysql
记得记得就1511 天前
【MySQL数据库管理】
数据库·mysql·oracle
Austindatabases1 天前
给PG鸡蛋里面挑骨头--杭州PostgreSQL生态大会
数据库·postgresql
秃了也弱了。1 天前
MySQL空间函数详解,MySQL记录经纬度并进行计算
android·数据库·mysql
星环处相逢1 天前
MySQL数据库管理从入门到精通:全流程实操指南
数据库·mysql
h***04771 天前
SpringBoot集成Flink-CDC,实现对数据库数据的监听
数据库·spring boot·flink