MongoDB聚合运算符:$asin

2024-02-21 11:12
文章标签 mongodb 运算符 聚合 asin

本文主要是介绍MongoDB聚合运算符:$asin,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

$asin聚合运算符返回反正弦函数值。

语法

{ $asin: <expression> }
  • $asin接受可解析为数值-1到1之间数值的表达式,即:-1 <= value <= 1
  • $asin返回值为弧度,可以使用$radiansToDegrees运算符把弧度转换为角度。
  • 缺省情况下,$asin返回双精度数double,如果<expression>表达式解析为128-bit decimal,则$asin也返回128-bit decimal。

使用

如果参数被解析为null或表达式引用的字段不存在,返回null,如果参数解析为NaN,返回NaN。如果参数表达式解析后的值超出[-1,1]的范围,将抛出异常。

例子返回
{ $asin: NaN }NaN
{ $asin: null }null
{ $asin : 正无穷}{ $asin : 负无穷 }抛出异常

举例

反正弦角度

trigonometry集合有下面的文档,包含了直角三角形的三个边:

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

下面的聚合操作先使用$asin表达式计算边side_a的对角,然后使用$radiansToDegress表达式将$asin返回的弧度值转换为角度,并使用$addFeilds管道阶段将其添加到输入文档:

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

命令运行的结果如下:

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

反正弦弧度

使用上例中的集合数据和聚合命令,去掉$radiansToDegrees表达式:


db.trigonometry.aggregate([{$addFields : {"angle_a" : {$asin : {$divide : [ "$side_a", "$hypotenuse" ]}}}}
])

执行后的结果为:

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

这篇关于MongoDB聚合运算符:$asin的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/731584

相关文章

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

MySQL count()聚合函数详解

《MySQLcount()聚合函数详解》MySQL中的COUNT()函数,它是SQL中最常用的聚合函数之一,用于计算表中符合特定条件的行数,本文给大家介绍MySQLcount()聚合函数,感兴趣的朋... 目录核心功能语法形式重要特性与行为如何选择使用哪种形式?总结深入剖析一下 mysql 中的 COUNT

C++20管道运算符的实现示例

《C++20管道运算符的实现示例》本文简要介绍C++20管道运算符的使用与实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录标准库的管道运算符使用自己实现类似的管道运算符我们不打算介绍太多,因为它实际属于c++20最为重要的

基于MongoDB实现文件的分布式存储

《基于MongoDB实现文件的分布式存储》分布式文件存储的方案有很多,今天分享一个基于mongodb数据库来实现文件的存储,mongodb支持分布式部署,以此来实现文件的分布式存储,需要的朋友可以参考... 目录一、引言二、GridFS 原理剖析三、Spring Boot 集成 GridFS3.1 添加依赖

Kotlin运算符重载函数及作用场景

《Kotlin运算符重载函数及作用场景》在Kotlin里,运算符重载函数允许为自定义类型重新定义现有的运算符(如+-…)行为,从而让自定义类型能像内置类型那样使用运算符,本文给大家介绍Kotlin运算... 目录基本语法作用场景类对象数据类型接口注意事项在 Kotlin 里,运算符重载函数允许为自定义类型重

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

关于MongoDB图片URL存储异常问题以及解决

《关于MongoDB图片URL存储异常问题以及解决》:本文主要介绍关于MongoDB图片URL存储异常问题以及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录MongoDB图片URL存储异常问题项目场景问题描述原因分析解决方案预防措施js总结MongoDB图

Java逻辑运算符之&&、|| 与&、 |的区别及应用

《Java逻辑运算符之&&、||与&、|的区别及应用》:本文主要介绍Java逻辑运算符之&&、||与&、|的区别及应用的相关资料,分别是&&、||与&、|,并探讨了它们在不同应用场景中... 目录前言一、基本概念与运算符介绍二、短路与与非短路与:&& 与 & 的区别1. &&:短路与(AND)2. &:非短

Go Mongox轻松实现MongoDB的时间字段自动填充

《GoMongox轻松实现MongoDB的时间字段自动填充》这篇文章主要为大家详细介绍了Go语言如何使用mongox库,在插入和更新数据时自动填充时间字段,从而提升开发效率并减少重复代码,需要的可以... 目录前言时间字段填充规则Mongox 的安装使用 Mongox 进行插入操作使用 Mongox 进行更

使用Python实现操作mongodb详解

《使用Python实现操作mongodb详解》这篇文章主要为大家详细介绍了使用Python实现操作mongodb的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录一、示例二、常用指令三、遇到的问题一、示例from pymongo import MongoClientf