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 }
相关推荐
BIBI20493 分钟前
CentOS 7 安装 MongoDB
linux·mongodb·centos·nosql·环境搭建·安装教程·服务器运维
brevity_souls5 分钟前
SQL 中“过滤条件”写在 SELECT、JOIN 和 WHERE 的区别
数据库·sql
麦聪聊数据17 分钟前
拒绝循环写库:MySQL 批量插入、Upsert 与跨表更新的高效写法
数据库·sql·mysql
技术净胜18 分钟前
mysqldump 命令备份单库、多库、全库实操指南
数据库·mysql·adb
1.14(java)18 分钟前
数据库范式详解与设计实践
数据库·mysql
麦聪聊数据19 分钟前
由SQL空值 (NULL)引发的逻辑黑洞:从NOT IN失效谈起
数据库·sql·mysql
陈天伟教授21 分钟前
关系数据库-06. 触发器
数据库·oracle·达梦数据库·国产数据库
2501_9445210021 分钟前
rn_for_openharmony商城项目app实战-账号安全实现
javascript·数据库·安全·react native·react.js·ecmascript
dishugj23 分钟前
【Oracle】 闪回技术(Flashback)的底层原理
数据库·oracle·flashback
想摆烂的不会研究的研究生27 分钟前
每日八股——Redis(4)
数据库·经验分享·redis·后端·缓存