MongoDB聚合运算符:$sqrt
文章目录
$sqrt
聚合运算符返回数值的平方根,数值必须为正数,返回值为双精度数。
语法
js
{ $sqrt: <number> }
<expression>
为可解析为非负数的表达式。
使用
如果参数解析为 null
值或引用缺少的字段,则 $sqrt
返回 null
。如果参数解析为 NaN
,则 $sqrt
返回 NaN
。
如果参数为负数, $sqrt
将报错。
例子 | 结果 |
---|---|
{ $sqrt: 25 } |
5 |
{ $sqrt: 30 } |
5.477225575051661 |
{ $sqrt: null } |
null |
举例
points
集合有下列文档:
js
{ _id: 1, p1: { x: 5, y: 8 }, p2: { x: 0, y: 5} }
{ _id: 2, p1: { x: -2, y: 1 }, p2: { x: 1, y: 5} }
{ _id: 3, p1: { x: 4, y: 4 }, p2: { x: 4, y: 0} }
下面的示例使用 $sqrt
计算 p1
和 p2
之间的距离:
js
db.points.aggregate([
{
$project: {
distance: {
$sqrt: {
$add: [
{ $pow: [ { $subtract: [ "$p2.y", "$p1.y" ] }, 2 ] },
{ $pow: [ { $subtract: [ "$p2.x", "$p1.x" ] }, 2 ] }
]
}
}
}
}
])
操作返回下面的结果:
json
{ "_id" : 1, "distance" : 5.830951894845301 }
{ "_id" : 2, "distance" : 5 }
{ "_id" : 3, "distance" : 4 }