MongoDB聚合运算符:$sqrt

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

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 }
相关推荐
曹牧22 分钟前
Oracle:判断一个字符串出现次数
数据库·oracle
源代码•宸22 分钟前
Leetcode—620. 有趣的电影&&Q3. 有趣的电影【简单】
数据库·后端·mysql·算法·leetcode·职场和发展
快乐肚皮36 分钟前
MySQL递归CTE
java·数据库·mysql·递归表达式
2301_800256111 小时前
地理空间数据库中的CPU 和 I/O 开销
数据库·算法·oracle
Elseide艾思1 小时前
艾思政策数据库正式发布(1989年至今)
数据库
zhengfei6111 小时前
OrangeHRM RCE 最新漏洞利用 - CVE-2025-66224
数据库
中國移动丶移不动1 小时前
Python MySQL 数据库操作完整示例
数据库·python·mysql
木风小助理1 小时前
B+树何以成为数据库索引的“天选之结构”?
数据库
7ioik2 小时前
为什么lnnoDB存储引擎默认使用B+树作为索引结构?
数据库·b树·oracle
斯普信专业组3 小时前
PostgreSQL高可用集群部署与配置指南
数据库·postgresql