MongoDB聚合运算符:$radiansToDegrees
文章目录
- 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小数