MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

MongoDB $ atan

Trong MongoDB, $atan toán tử đường ống tổng hợp trả về arctangent (tiếp tuyến nghịch đảo) của một giá trị.

Giá trị trả về tính bằng radian.

$atan chấp nhận bất kỳ biểu thức hợp lệ nào phân giải thành một số.

$atan toán tử đã được giới thiệu trong MongoDB 4.2.

Ví dụ

Giả sử chúng ta có một bộ sưu tập được gọi là test với tài liệu sau:

{ "_id" : 1, "data" : 2 }

Chúng ta có thể sử dụng $atan toán tử để trả về arctangent của data lĩnh vực:

db.test.aggregate(
  [
    { $match: { _id: 1 } },
    { $project: { 
        _id: 0,
        arctangent: { $atan: "$data" }
      }
    }
  ]
)

Kết quả:

{ "arctangent" : 1.1071487177940906 }

Chuyển đổi sang độ

Như đã đề cập, $atan trả về kết quả của nó theo đơn vị radian. Bạn có thể sử dụng $radiansToDegrees nếu bạn muốn kết quả bằng độ.

Ví dụ:

db.test.aggregate(
  [
    { $match: { _id: 1 } },
    { $project: { 
        _id: 0,
        radians: { $atan: "$data" },
        degrees: { $radiansToDegrees: { $atan: "$data" } }
      }
    }
  ]
)

Kết quả:

{ "radians" : 1.1071487177940906, "degrees" : 63.43494882292202 }

Trong ví dụ này, trường đầu tiên trình bày kết quả bằng radian và trường thứ hai trình bày kết quả bằng độ.

Giá trị thập phân 128 bit

Theo mặc định, $atan toán tử trả về các giá trị dưới dạng double , nhưng nó cũng có thể trả về giá trị dưới dạng số thập phân 128 bit miễn là biểu thức phân giải thành giá trị thập phân 128 bit.

Giả sử chúng ta thêm tài liệu sau vào bộ sưu tập của mình:

{ "_id" : 2, "data" : NumberDecimal("2.1301023541559787031443874490659") }

Hãy chạy $atan toán tử đối với tài liệu đó:

db.test.aggregate(
  [
    { $match: { _id: 2 } },
    { $project: { 
        _id: 0,
        arctangent: { $atan: "$data" }
      }
    }
  ]
)

Kết quả:

{ "arctangent" : NumberDecimal("1.131877001503761613330938729211760") }

Đầu ra là số thập phân 128 bit.

Giá trị rỗng

Giá trị rỗng trả về null khi sử dụng $atan nhà điều hành.

Giả sử chúng ta thêm tài liệu sau vào bộ sưu tập của mình:

{ "_id" : 3, "data" : null }

Hãy chạy $atan toán tử đối với tài liệu đó:

db.test.aggregate(
  [
    { $match: { _id: 3 } },
    { $project: { 
        _id: 0,
        result: { $atan: "$data" }
      }
    }
  ]
)

Kết quả:

{ "result" : null }

Chúng ta có thể thấy rằng kết quả là null .

Giá trị NaN

Nếu đối số phân giải thành NaN , $atan trả về NaN .

Ví dụ:

db.test.aggregate(
  [
    { $match: { _id: 3 } },
    { $project: { 
        _id: 0,
        result: { $atan: 1 * "$data" }
      }
    }
  ]
)

Kết quả:

{ "result" : NaN }

Các trường không tồn tại

Nếu $atan toán tử được áp dụng cho một trường không tồn tại, null được trả lại.

Ví dụ:

db.test.aggregate(
  [
    { $match: { _id: 3 } },
    { $project: { 
        _id: 0,
        result: { $atan: "$wrong" }
      }
    }
  ]
)

Kết quả:

{ "result" : null }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tự động xóa tài liệu sưu tập MongoDB

  2. Hệ thống tệp chỉ đọc khi thử mkdir / data / db trên Mac

  3. Làm cách nào để xóa một 'tài liệu' theo 'ID' bằng Trình điều khiển C # Chính thức cho MongoDB?

  4. MongoDB Java Inserting Throws org.bson.codecs.configuration.CodecConfigurationException:Không thể tìm thấy codec cho lớp io.github.ilkgunel.mongodb.Pojo

  5. Quảng cáo các trường con lên cấp cao nhất trong phép chiếu mà không cần liệt kê tất cả các khóa