Docs 菜单

Docs 主页开发应用程序MongoDB Manual

$sqrt(聚合)

在此页面上

  • 定义
  • 行为
  • 例子
$sqrt

计算正数的平方根,并以双精度值形式返回结果。

$sqrt 通过以下语法实现:

{ $sqrt: <number> }

该参数可以是任何有效的表达式,只要它解析为非负数即可。 有关表达式的更多信息,请参阅表达式操作符。

如果参数解析为 null 的值或引用了缺失的字段,$sqrt 返回 null。如果参数解析为 NaN$sqrt 会返回 NaN

$sqrt 负数错误。

例子
结果
{ $sqrt: 25 }
5
{ $sqrt: 30 }
5.477225575051661
{ $sqrt: null }
null

集合 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计算p1p2之间的距离:

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 }
← $split(聚合)

在此页面上