$sqrt(平方根)
最后更新:2026-10-09
$sqrt(平方根)
$sqrt返回数值的平方根,接受单个数值表达式。常用于几何计算、标准差相关运算、归一化等场景,例如求欧氏距离时先求平方和再开方。参数为null或缺失时返回null;负数输入返回null,因为实数域没有负数平方根。$sqrt与$pow: [x, 0.5]等价但更语义化,代码可读性更好。支持整数、double与Decimal类型。
| 分类 | 数学 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ $sqrt: <数值表达式> }
⚙️ 参数
| 数值 | 数值或解析为数值的表达式,必须是非负数。 |
|---|
返回值:输入的平方根;负数、null或缺失时返回null
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// $sqrt:由两个直角边求距离
db.points.aggregate([
{ $project: {
distance: { $sqrt: { $add: [{ $pow: ['$x', 2] }, { $pow: ['$y', 2] }] } }
} }
])
运行结果:
{ '_id': 1, 'distance': 5 }
{ '_id': 2, 'distance': 10 }
📌 注意事项
- 负数输入返回null,不会报错
- 等价于$pow: [x, 0.5],但$sqrt语义更清晰
- null或缺失参数返回null
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
Q$sqrt对负数返回什么?
A返回null,实数域中负数没有平方根。
Q$sqrt和$pow怎么换算?
A$sqrt(x)等于$pow: [x, 0.5]。
Q$sqrt支持Decimal吗?
A支持,Decimal输入返回Decimal结果。