MongoDB聚合运算符:$atan2

02-27 阅读 0评论

$atan2用来计算反正切,返回指定表达式的反正切值,与$antan的区别主要是参数不同。

MongoDB聚合运算符:$atan2,MongoDB聚合运算符:$atan2,词库加载错误:未能找到文件“C:\Users\Administrator\Desktop\火车头9.8破解版\Configuration\Dict_Stopwords.txt”。,使用,最后,操作,第1张
(图片来源网络,侵删)

语法

{ $atan2: [, ] }
  • 为可被解析为数值的表达式
  • $atan2返回弧度,使用$radiansToDegrees运算符可以把弧度转换为角度
  • $atan2默认返回双精度数double,如果表达式解析为128-bit decimal则返回同样类型。

    使用

    如果任一参数解析为null,则结果返回null;如果任一参数解析为NaN,则结果返回NaN;如果一个参数解析为null,另一个解析为NaN,则结果返回null,如下表所示:

    示例结果
    { $atan2: [NaN, }NaN
    { $atan2: [ , NaN ] }NaN
    { $atan2: [ null, ] }null
    { $atan2: [ , null ] }null
    { $atan2: [ NaN, null ] }null
    { $atan2: [ null, NaN ] }null

    举例

    trigonometry集合中有下面的文档,包含了直角三角形的三条边:

    {
      "_id" : ObjectId("5c50782193f833234ba90d85"),
      "side_a" : NumberDecimal("3"),
      "side_b" : NumberDecimal("4"),
      "hypotenuse" : NumberDecimal("5")
    }
    

    反正切角度

    下面的聚合操作使用$atan2表达式计算与边side_a相邻的角度,然后使用$radiansToDegrees运算符将结果转换为度数,最后使用$addFields管道阶段将其添加到输入文档。

    db.trigonometry.aggregate([
      {
        $addFields : {
          "angle_a" : {
            $radiansToDegrees : {
              $atan2 : [ "$side_b", "$side_a" ]
            }
          }
        }
      }
    ])
    

    执行的结果为:

    {
      "_id" : ObjectId("5c50782193f833234ba90d85"),
      "side_a" : NumberDecimal("3"),
      "side_b" : NumberDecimal("4"),
      "hypotenuse" : NumberDecimal("5"),
      "angle_a" : NumberDecimal("53.13010235415597870314438744090658")
    }
    

    反正切弧度

    与上例不同,在求反正切后,没有进行度数的转换,结果为弧度:

    db.trigonometry.aggregate([
      {
        $addFields : {
          "angle_a" : {
            $atan2 : [ "$side_b", "$side_a" ]
          }
        }
      }
    ])
    

    结果为:

    {
      "_id" : ObjectId("5c50782193f833234ba90d85"),
      "side_a" : NumberDecimal("3"),
      "side_b" : NumberDecimal("4"),
      "hypotenuse" : NumberDecimal("5"),
      "angle_a" : NumberDecimal("0.9272952180016122324285124629224287")
    }
    

免责声明
本网站所收集的部分公开资料来源于AI生成和互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

发表评论

快捷回复: 表情:
评论列表 (暂无评论,人围观)

还没有评论,来说两句吧...

目录[+]