$abs(绝对值)
最后更新:2026-10-09
$abs(绝对值)
$abs返回数值的绝对值,接受单个数值表达式。常用于计算距离、偏差、误差等场景,例如求实际值与目标值的差距,或计算地理位置偏移。参数为null或缺失时返回null;正无穷返回正无穷,负数取绝对值后变正。与$sign配合可以同时拿到数值的符号与大小。$abs支持整数、double与Decimal类型。
| 分类 | 数学 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ $abs: <数值表达式> }
⚙️ 参数
| 数值 | 数值或解析为数值的表达式。 |
|---|
返回值:数值的绝对值;参数为null或缺失时返回null
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// $abs:计算实际值与目标值的差距
db.sales.aggregate([
{ $project: {
gap: { $abs: { $subtract: ['$actual', '$target'] } }
} }
])
运行结果:
{ '_id': 1, 'gap': 5 }
{ '_id': 2, 'gap': 3 }
📌 注意事项
- null或缺失参数返回null
- 负无穷取绝对值后为正无穷
- 负数取绝对值后符号消失,如需原符号配合$sign判断
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
Q$abs对null返回什么?
A返回null;需要默认值时用$ifNull处理。
Q$abs能取负无穷的绝对值吗?
A可以,结果为Infinity。
Q如何同时得到数值的符号和绝对值?
A用$sign拿符号(1、-1或0),用$abs拿绝对值,两者配合使用。