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

MongoDB $ exp

Trong MongoDB, $exp nhà điều hành đường ống tổng hợp tăng số của Euler (tức là e ) đến số mũ được chỉ định và trả về kết quả.

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

Số của Euler là một hằng số toán học xấp xỉ bằng 2,7182818284590452353602874713527. Con số này chỉ là gần đúng vì số của Euler là vô tỉ và các chữ số của nó tiếp tục mãi mãi mà không lặp lại. Số của Euler là cơ số của lôgarit tự nhiên.

Ví dụ

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

{ "_id" : 1, "data" : 2 }
{ "_id" : 2, "data" : 3 }
{ "_id" : 3, "data" : -2 }
{ "_id" : 4, "data" : -3 }
{ "_id" : 5, "data" : 0 }

Dưới đây là một ví dụ về việc áp dụng $exp toán tử cho data lĩnh vực:

db.test.aggregate(
   [
     { $match: { _id: { $in: [ 1, 2, 3, 4, 5 ] } } },
     {
       $project:
          {
            _id: 0,
            data: 1,
            result: { $exp: "$data" }
          }
     }
   ]
)

Kết quả:

{ "data" : 2, "result" : 7.38905609893065 }
{ "data" : 3, "result" : 20.085536923187668 }
{ "data" : -2, "result" : 0.1353352832366127 }
{ "data" : -3, "result" : 0.049787068367863944 }
{ "data" : 0, "result" : 1 }

Giá trị rỗng

Nếu biểu thức giải quyết thành null , rồi đến null được trả lại.

Giả sử bộ sưu tập của chúng tôi chứa tài liệu sau:

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

Bây giờ hãy áp dụng $exp vào tài liệu đó:

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

Kết quả:

{ "data" : null, "result" : null }

Vô cực

Giả sử chúng ta có các tài liệu sau trong bộ sưu tập của mình:

{ "_id" : 7, "data" : Infinity }
{ "_id" : 8, "data" : -Infinity }

Đây là những gì sẽ xảy ra khi chúng tôi áp dụng $exp thành Infinity-Infinity :

db.test.aggregate(
   [
     { $match: { _id: { $in: [ 7, 8 ] } } },
     {
       $project:
          {
            _id: 0,
            data: 1,
            result: { $exp: "$data" }
          }
     }
   ]
)

Kết quả:

{ "data" : Infinity, "result" : Infinity }
{ "data" : -Infinity, "result" : 0 }

Các trường bị thiếu

Đang áp dụng $exp đến một trường bị thiếu trả về null .

Ví dụ:

db.test.aggregate(
   [
     {
       $project:
          {
            result: { $exp: "$age" }
          }
     }
   ]
)

Kết quả:

{ "_id" : 1, "result" : null }
{ "_id" : 2, "result" : null }
{ "_id" : 3, "result" : null }
{ "_id" : 4, "result" : null }
{ "_id" : 5, "result" : null }
{ "_id" : 6, "result" : null }
{ "_id" : 7, "result" : null }
{ "_id" : 8, "result" : null }

Trong ví dụ này, chúng tôi áp dụng $exp toán tử cho một trường không tồn tại được gọi là age . Kết quả là null trong mọi trường hợp.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tạo Bộ sưu tập trong MongoDB

  2. Truy vấn MongoDB GridFS?

  3. Làm cách nào để chuyển đổi một trường boolean trong một tài liệu với phép toán nguyên tử?

  4. Chèn dữ liệu vào mảng lồng nhau trong mongodb

  5. mongoose / mongodb tùy chỉnh sắp xếp