MongoDB聚合操作符:$acosh

$acosh操作符返回给定值的反双曲余弦。

语法

js 复制代码
{ $acosh: <expression> }
  • $acosh的可以接受解析为1到正无穷之间数字的表达式,即 1 <= value <= +∞
  • $acosh返回值以弧度为单位,使用$radiansToDegrees操作符可以把输出值由弧度转换为角度。
  • 缺省情况下$acosh范围值为double,如果<expression>的值被解析为128-bit decimal$acosh也会返回128-bit decimal

使用

null、NaN和±∞

如果参数被解析为null或应用不存在的字段,$acosh返回null;如果参数为解析为NaN$acosh返回NaN;如果参数解析为负无穷,即value∉[-1,1]$acosh将抛出错误;如果参数解析为正无穷,$acosh返回正无穷;如果参数解析的结果超出边界值[-1, 正无穷]$acosh抛出错误。

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

举例

以度数为单位的反双曲余弦

trigonometry集合包含一个文档,用于存储二维图形x轴上的数值:

json 复制代码
{
  "_id" : ObjectId("5c50782193f833234ba90d85"),
  "x-coordinate" : NumberDecimal("3")
}

下面的聚合操作使用$acosh表达式计算x-coordinate的反双曲余弦值,并使用$addFields管道阶段将其添加到输入文档。

js 复制代码
db.trigonometry.aggregate([
  {
    $addFields : {
      "y-coordinate" : {
        $radiansToDegrees : { $acosh : "$x-coordinate" }
      }
    }
  }
])

$radiansToDegrees表达式将$acosh返回的弧度值转换为度数。

上面的命令执行后返回下面的结果:

json 复制代码
{
  "_id" : ObjectId("5c50782193f833234ba90d85"),
  "x-coordinate" : NumberDecimal("3"),
  "y-coordinate" : NumberDecimal("100.9979734210524228844295260083432")
}

由于x-coordinate使用128-bit decimal,所以$acosh也输出128-bit decimal

以弧度为单位的反双曲余弦

以上例数据为基础,执行下面的命令:

js 复制代码
db.trigonometry.aggregate([
  {
    $addFields : {
      "y-coordinate" : {
        $acosh : "$x-coordinate"
      }
    }
  }
])

返回结果:

json 复制代码
{
  "_id" : ObjectId("5c50782193f833234ba90d85"),
  "x-coordinate" : NumberDecimal("3"),
  "y-coordinate" : NumberDecimal("1.762747174039086050465218649959585")
}
相关推荐
X56611 小时前
如何在 Laravel 中正确保存嵌套动态表单数据(主服务与子服务)
jvm·数据库·python
虹科网络安全2 小时前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
2301_771717212 小时前
解决mysql报错:1406, Data too long for column
android·数据库·mysql
小江的记录本3 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
dvjr cloi3 小时前
MySQL Workbench菜单汉化为中文
android·数据库·mysql
dFObBIMmai3 小时前
MySQL主从同步中大事务导致的延迟_如何拆分大事务优化同步
jvm·数据库·python
szccyw03 小时前
mysql如何限制特定存储过程执行权限_MySQL存储过程安全访问
jvm·数据库·python
czlczl200209254 小时前
利用“延迟关联”优化 MySQL 巨量数据的深分页查询
数据库·mysql
ACP广源盛139246256734 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑
Elastic 中国社区官方博客4 小时前
ES|QL METRICS_INFO 和 TS_INFO:为你的时间序列数据建立目录
大数据·数据库·elasticsearch·搜索引擎·信息可视化·全文检索