专业做婚庆的网站有哪些,网站建设项目确认书,跨境电商平台有哪些?,wordpress源代码编辑器$acos操作符返回一个值的反余弦。从MongoDB4.2版本开始支持。
语法
{ $acos: expression }$acos接受任何可被解析为值在-1到1之间的表达式#xff0c;即#xff1a;-1 value 1$acos返回值以弧度为单位#xff0c;使用$radiansToDegrees操作符可以把输出…$acos操作符返回一个值的反余弦。从MongoDB4.2版本开始支持。
语法
{ $acos: expression }$acos接受任何可被解析为值在-1到1之间的表达式即-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_b和hypotenuse存储为128-bit decimal所以$acos的输出也是128-bit decimal。