MongoDB聚合运算符:$degreesToRadians

$degreesToRadians将以度为单位的输入值转换为弧度。从版本4.2开始支持。

语法

{ $degreesToRadians: <expression> }

<expression>是能被解析为数值的表达式。默认情况下$degreesToRadians返回值为double类型,如果<expression>被解析为128-bit小数,返回值的类型也为128-bit小数。

使用

如果参数表达式被解析为null或不存在,则返回null。如果参数被解析为NaN则返回NaN,如果参数被解析为正无穷或负无穷,则返回值也为正无穷或负无穷,具体如下表:

表达式返回值
{ $degreesToRadians: NaN }NaN
{ $degreesToRadians: null }null
{ $degreesToRadians : Infinity}Infinity
{ $degreesToRadians : -Infinity }-Infinity

举例

trigonometry集合的文档包含了一个三角形的三个角的度数:

{
  "angle_a" : NumberDecimal("53.13010235415597870314438744090659"),
  "angle_b" : NumberDecimal("36.86989764584402129685561255909341"),
  "angle_c" : NumberDecimal("90")
}

下面的聚合操作使用$degreesToRadians表达式将角度值转换为弧度值,并使用$addFields管道将它们添加到输入文档。

db.trigonometry.aggregate([
  {
    $addFields: {
      "angle_a_rad" : { $degreesToRadians : "$angle_a"},
      "angle_b_rad" : { $degreesToRadians : "$angle_b"},
      "angle_c_rad" : { $degreesToRadians : "$angle_c"}
    }
  }
])

操作返回下面的结果:

{
  "_id" : ObjectId("5c50aec71c75c59232b3ede4"),
  "angle_a" : NumberDecimal("53.13010235415597870314438744090660"),
  "angle_b" : NumberDecimal("36.86989764584402129685561255909341"),
  "angle_c" : NumberDecimal("90"),
  "angle_a_rad" : NumberDecimal("0.9272952180016122324285124629224290"),
  "angle_b_rad" : NumberDecimal("0.6435011087932843868028092287173227"),
  "angle_c_rad" : NumberDecimal("1.570796326794896619231321691639752")
}

因为angle_aangle_bangle_c为128-bit小数,所以输出也是128-bit小数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

原子星

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

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

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

打赏作者

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

抵扣说明:

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

余额充值