MongoDB聚合运算符:$radiansToDegrees

本文介绍了MongoDB中的$radiansToDegrees聚合运算符,用于将弧度值转换为度。示例展示了如何在文档中使用该运算符进行角度计算,特别提到了128-bit小数的处理方式。

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_aangle_bangle_c为128-bit小数,所以输出也是128-bit小数

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

原子星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值