MongoDB聚合运算符:$sqrt

devtools/2024/10/19 13:25:24/

MongoDB聚合运算符:$sqrt

文章目录

  • MongoDB聚合运算符:$sqrt
    • 语法
    • 使用
    • 举例

$sqrt聚合运算符返回数值的平方根,数值必须为正数,返回值为双精度数。

语法

{ $sqrt: <number> }

<expression>为可解析为非负数的表达式。

使用

如果参数解析为 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 }

http://www.ppmy.cn/devtools/27438.html

相关文章

GateWay具体的使用之全局token过滤器

1: 创建过滤器类 首先&#xff0c;你需要创建一个实现了GatewayFilter接口或者继承AbstractGatewayFilterFactory类的过滤器类。这里以实现GatewayFilter接口为例&#xff0c;创建一个全局token过滤器。 package com.by.filter;import cn.hutool.core.collection.CollUtil; imp…

ETL中双流合并和多流合并的区别

一、ETL工具 ETLCloud数据集成平台集实时数据集成和离线数据集成以及API发布为一体的数据集成平台。与其他开源数据集成工具相比&#xff0c;采用轻量化架构、具有更快的部署速度、更快的数据传输速度、更低的运维成本&#xff0c;同时支持多租户的团队协作能力&#xff0c;能…

redis运维篇上篇

最近在学redis&#xff0c;由于笔者是学运维的&#xff0c;所以推荐学习运维的小伙伴参考&#xff0c;希望对大家有帮助&#xff01; redis运维篇下篇:http://t.csdnimg.cn/83sQ1 附加redis多用户管理:http://t.csdnimg.cn/DY3yx 目录 一.安装redis 二.redis配置调优 三.启…

RTMP 直播推流 Demo(二)—— 音频推流与视频推流

音视频编解码系列目录&#xff1a; Android 音视频基础知识 Android 音视频播放器 Demo&#xff08;一&#xff09;—— 视频解码与渲染 Android 音视频播放器 Demo&#xff08;二&#xff09;—— 音频解码与音视频同步 RTMP 直播推流 Demo&#xff08;一&#xff09;—— 项目…

SpringMVC进阶(自定义拦截器以及异常处理)

文章目录 1.自定义拦截器1.基本介绍1.说明2.自定义拦截器的三个方法3.流程图 2.快速入门1.Myinterceptor01.java2.FurnHandler.java3.springDispatcherServlet-servlet.xml配置拦截器4.单元测试 3.拦截特定路径1.拦截指定路径2.通配符配置路径 4.细节说明5.多个拦截器1.执行流程…

【QT教程】QT6 QML性能优化入门与进阶

QT6 QML性能优化入门与进阶 使用AI技术辅助生成 QT界面美化视频课程 QT性能优化视频课程 QT原理与源码分析视频课程 QT QML C扩展开发视频课程 免费QT视频课程 您可以看免费1000个QT技术视频 免费QT视频课程 QT统计图和QT数据可视化视频免费看 免费QT视频课程 QT性能优化视频…

React中,双花括号和单花括号的区别(四)

在React中&#xff0c;花括号 {} 用于在JSX中插入JavaScript表达式。 单花括号 {}&#xff1a;通常用于在JSX中嵌入JavaScript表达式。这些表达式可以是变量、函数调用、对象字面量、数组等。React会评估这些表达式&#xff0c;并将结果插入到JSX中。 例如&#xff0c;在你的代…

Microsoft Universal Print 与 SAP 集成教程

引言 从 SAP 环境打印是许多客户的要求。例如数据列表打印、批量打印或标签打印。此类生产和批量打印方案通常使用专用硬件、驱动程序和打印解决方案来解决。 Microsoft Universal Print 是一种基于云的打印解决方案&#xff0c;它允许组织以集中化的方式管理打印机和打印机驱…