参考 > 参考 > 经营者 > 聚合管道运营商 > $ sqrt(汇总)
在本页面
$sqrt
3.2版中的新功能。
计算正数的平方根,然后将结果作为双精度值返回。
$sqrt 具有以下语法:
{ $sqrt: <number> }
该参数可以是任何有效的表达式,只要它可以解析为非负数 。有关表达式的更多信息,请参见表达式。
如果自变量解析为null或指向缺少的字段,则$sqrt返回null。如果参数解析为 NaN,则$sqrt返回NaN。
null
NaN
$sqrt 负数错误。
{ $sqrt: 25 }
5
{ $sqrt: 30 }
5.477225575051661
{ $sqrt: null }
集合points包含以下文档:
points
{ _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:
p1
p2
db.points.aggregate([ { $project: { distance: { $sqrt: { $add: [ { $pow: [ { $subtract: [ "$p2.y", "$p1.y" ] }, 2 ] }, { $pow: [ { $subtract: [ "$p2.x", "$p1.x" ] }, 2 ] } ] } } } } ])
该操作返回以下结果:
{ "_id" : 1, "distance" : 5.830951894845301 } { "_id" : 2, "distance" : 5 } { "_id" : 3, "distance" : 4 }