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

MongoDB $ asinh

Trong MongoDB, $asinh toán tử đường ống tổng hợp trả về cung hyperbolic (sin hyperbol nghịch đảo) của một giá trị, được đo bằng radian.

$asinh 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ố.

$asinh 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" : 180 }

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

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

Kết quả:

{ "hyperbolicArcsine" : 5.886111747410234 }

Theo mặc định, $asinh 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.

Chuyển đổi sang độ

Như đã đề cập, $asinh 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: { $asinh: "$data" },
        degrees: { $radiansToDegrees: { $asinh: "$data" } }
      }
    }
  ]
)

Kết quả:

{ "radians" : 5.886111747410234, "degrees" : 337.2493608689805 }

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

Nếu biểu thức được cung cấp cho $asinh là số thập phân 128 bit, sau đó kết quả được trả về ở số 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("90.1301023541559787031443874490659") }

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

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

Kết quả:

{ "hyperbolicArcsine" : NumberDecimal("5.194432162492309602580058740782701") }

Đầ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 $asinh 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 $asinh toán tử đối với tài liệu đó:

db.test.aggregate(
  [
    { $match: { _id: 3 } },
    { $project: { 
        _id: 0,
        result: { $asinh: "$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 , $asinh trả về NaN .

Ví dụ:

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

Kết quả:

{ "result" : NaN }

Vô cực

Nếu đối số phân giải thành Infinity hoặc -Infinity , $asinh toán tử trả về Infinity .

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

{ "_id" : 4, "data" : Infinity }

Hãy chạy $asinh so với trường dữ liệu:

db.test.aggregate(
  [
    { $match: { _id: 4 } },
    { $project: { 
        _id: 0,
        hyperbolicArcsine: { $asinh: "$data" }
      }
    }
  ]
)

Kết quả:

{ "hyperbolicArcsine" : Infinity }

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

Nếu $asinh 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: 4 } },
    { $project: { 
        _id: 0,
        result: { $asinh: "$wrong" }
      }
    }
  ]
)

Kết quả:

{ "result" : null }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb:Truy vấn một đối tượng json được lồng trong một mảng

  2. MongoDB người dùng và mật khẩu mặc định là gì?

  3. MongoDB $ indexOfBytes

  4. Chuyển đổi BSON Type ObjectId sang JSON (Lưu trữ trong Mongodb) -Java

  5. MongoDB - Mang chứng chỉ SSL của riêng bạn