当前位置: 首页 > news >正文

MongoDB聚合操作符:$acos

$acos操作符返回一个值的反余弦。从MongoDB4.2版本开始支持。

语法

{ $acos: <expression> }
  • $acos接受任何可被解析为值在-11之间的表达式,即:-1 <= value <= 1
  • $acos返回值以弧度为单位,使用$radiansToDegrees操作符可以把输出值由弧度转换为角度。
  • 缺省情况下$acos范围值为double,如果<expression>的值被解析为128-bit decimal$acos也会返回128-bit decimal

使用

如果参数被解析为null或不存在的字段,$acos返回null,如果参数为解析为NaN$acos返回NaN,如果参数解析的值越界,即value∉[-1,1]$acos将抛出错误。

参数举例返回值
{ $acos: NaN }NaN
{ $acos: null }null
{ $acos : Infinity}{ $acos : -Infinity}抛出异常: "errmsg" : "Failed to optimize pipeline :: caused by :: cannot apply $acos to -inf, value must in [-1,1]"

举例

反余弦度数

trigonometry集合包含下满的文档,存储了直角三角形的3条边长:

{"_id" : ObjectId("5c50782193f833234ba90d85"),"side_a" : NumberDecimal("3"),"side_b" : NumberDecimal("4"),"hypotenuse" : NumberDecimal("5")
}

下面的聚合操作使用$acos表达式计算side_a相邻的角度,并将结果使用$addFields阶段将结果添加到输入文档。

db.trigonometry.aggregate([{$addFields : {"angle_a" : {$radiansToDegrees : {$acos : {$divide : [ "$side_b", "$hypotenuse" ]}}}}}
])

$radiansToDegrees表达式将$acos返回的弧度转换为角度。

聚合后返回的结果如下:

{"_id" : ObjectId("5c50782193f833234ba90d85"),"side_a" : NumberDecimal("3"),"side_b" : NumberDecimal("4"),"hypotenuse" : NumberDecimal("5"),"angle_a" : NumberDecimal("36.86989764584402129685561255909341")
}

因为side_bhypotenuse存储为128-bit decimal所以$acos的输出也是128-bit decimal

http://www.lryc.cn/news/300710.html

相关文章:

  • 开源PDF工具 Apache PDFBox 认识及使用(知识点+案例)
  • 微软.NET6开发的C#特性——委托和事件
  • 卷积神经网络的基本结构
  • python:使用GDAL库读取遥感影像指定行列数/经纬度坐标的像素值
  • Redis篇----第一篇
  • C语言-----用二维数组解决菱形的打印问题
  • .NET Core WebAPI中使用swagger版本控制,添加注释
  • css篇---移动端适配的方案有哪几种
  • 一、部署Oracle
  • 11-编写自动化测试
  • 爱上JVM——常见问题(一):JVM组成
  • C#系列-EF扩展框架AutoMapper应用实例(40)
  • DataX源码分析-插件机制
  • 容器高级知识: 适配器模式与 Sidecar 模式的区别
  • 使用Xdisplay将ipad作为扩展显示器Agent闪退问题
  • DVXplorer事件相机入门
  • ubuntu屏幕小的解决办法
  • 黑群晖一键修复:root、AME、DTS、转码、CPU型号等
  • Repo命令使用实例(三十八)
  • 2024年华为OD机试真题-分披萨-Python-OD统一考试(C卷)
  • 找负环(图论基础)
  • 无人机飞控算法原理基础研究,多旋翼无人机的飞行控制算法理论详解,无人机飞控软件架构设计
  • 关于内存相关的梳理
  • 7.JS里表达式,if条件判断,三元运算符,switch语句,断点调试
  • RK3568平台开发系列讲解(存储篇)文件句柄与文件描述符介绍
  • 【C++】类和对象(五)友元、内部类、匿名对象
  • 攻防世界 CTF Web方向 引导模式-难度1 —— 1-10题 wp精讲
  • Docker之MongoDB安装、创建用户及登录认证
  • 紫微斗数双星组合:天机天梁在辰戌
  • N-144基于微信小程序在线订餐系统