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 计算 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 }
相关推荐
无言听风雨丶1 小时前
Redis 运维实战与排错
运维·数据库·redis
小天源3 小时前
智叟云集系统 · 架构与职责分层
服务器·前端·数据库
herinspace3 小时前
管家婆实用贴-SQL 2008如何修改成混合模式
服务器·数据库·sql·管家婆软件·财务软件·合肥管家婆软件
打螺丝的小李3 小时前
制造企业质量管理系统的三类产品形态:分别解决什么问题
数据库·制造
xixingzhe24 小时前
MySQL 锁表故障排查与处理
数据库·mysql
真上帝的左手4 小时前
30. 技术专题-‌应用框架组件-关系型数据库-MySQL-Mybatis
数据库·分布式·mysql·中间件·mybatis
为思念酝酿的痛4 小时前
MySQL表的连接
数据库·mysql
数字新视界4 小时前
机房动环监控系统在提升数据中心能效与安全中的应用探索
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
bksczm5 小时前
MySQL之存储引擎
数据库·mysql
大模型最新论文速读5 小时前
text-to-sql:从学术玩具到生产落地
数据库·sql