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 }
相关推荐
廋到被风吹走12 小时前
【数据库】【MySQL】InnoDB外键解析:约束机制、性能影响与最佳实践
android·数据库·mysql
掘根12 小时前
【消息队列】交换机数据管理实现
网络·数据库
Logic10112 小时前
《Mysql数据库应用》 第2版 郭文明 实验6 数据库系统维护核心操作与思路解析
数据库·sql·mysql·学习笔记·计算机网络技术·形考作业·国家开放大学
AI Echoes13 小时前
构建一个LangChain RAG应用
数据库·python·langchain·prompt·agent
@nengdoudou13 小时前
KingbaseES支持 mysql 的find_in_set函数
数据库·mysql
摇滚侠14 小时前
面试实战 问题三十三 Spring 事务常用注解
数据库·spring·面试
梁萌14 小时前
保姆级的MySQL执行计划(Explain)解读
数据库·mysql·explain·执行计划
JIngJaneIL14 小时前
基于Java+ vue智慧医药系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
+VX:Fegn089514 小时前
计算机毕业设计|基于springboot + vue图书管理系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
杨云龙UP15 小时前
MySQL 8.0.x InnoDB 写入链路优化:Redo Log 与 Buffer Pool 扩容与缓冲区调优实战记录-20251029
linux·运维·数据库·sql·mysql