MongoDB聚合运算符:$radiansToDegrees
$radiansToDegrees将以弧度为单位的输入值转换为度。从版本4.2开始支持。
语法
{ $radiansToDegrees: <expression> }
<expression>是能被解析为数值的表达式。默认情况下$radiansToDegrees返回值为double类型,如果<expression>被解析为128-bit小数,返回值的类型也为128-bit小数。
使用
如果参数表达式被解析为null或不存在,则返回null。如果参数被解析为NaN则返回NaN,如果参数被解析为正无穷或负无穷,则返回值也为正无穷或负无穷,具体如下表:
| 表达式 | 返回值 |
|---|---|
{ $radiansToDegrees: NaN } | NaN |
{ $radiansToDegrees: null } | null |
{ $radiansToDegrees : Infinity} | Infinity |
{ $radiansToDegrees : -Infinity } | -Infinity |
举例
trigonometry集合的文档包含了一个三角形的三个角的弧度:
{
{
"angle_a" : NumberDecimal("0.9272952180016122324285124629224290"),
"angle_b" : NumberDecimal("0.6435011087932843868028092287173227"),
"angle_c" : NumberDecimal("1.570796326794896619231321691639752")
}
}
下面的聚合操作使用$radiansToDegrees表达式将弧度值转换为角度值,并使用$addFields管道将它们添加到输入文档。
db.trigangles.aggregate([
{
$addFields: {
"angle_a_deg" : { $radiansToDegrees : "$angle_a"},
"angle_b_deg" : { $radiansToDegrees : "$angle_b"},
"angle_c_deg" : { $radiansToDegrees : "$angle_c"}
}
}
])
操作返回下面的结果:
{
"_id" : ObjectId("5c50aec71c75c59232b3ede4"),
"angle_a" : NumberDecimal("0.9272952180016122324285124629224290"),
"angle_b" : NumberDecimal("0.6435011087932843868028092287173227"),
"angle_c" : NumberDecimal("1.570796326794896619231321691639752"),
"angle_a_deg" : NumberDecimal("53.13010235415597870314438744090659"),
"angle_b_deg" : NumberDecimal("36.86989764584402129685561255909341"),
"angle_c_deg" : NumberDecimal("90.00000000000000000000000000000000")
}
}
因为angle_a、angle_b和angle_c为128-bit小数,所以输出也是128-bit小数
本文介绍了MongoDB中的$radiansToDegrees聚合运算符,用于将弧度值转换为度。示例展示了如何在文档中使用该运算符进行角度计算,特别提到了128-bit小数的处理方式。

415

被折叠的 条评论
为什么被折叠?



