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

MongoDB $ cond

Trong MongoDB, $cond toán tử đường ống tổng hợp đánh giá một biểu thức boolean và trả về một trong hai biểu thức trả về đã chỉ định, tùy thuộc vào việc liệu biểu thức boolean có phải là true hay không hoặc false .

$cond toán tử chấp nhận hai cú pháp:cú pháp tốc ký và cú pháp tốc ký. Dưới đây là các ví dụ về từng loại.

Ví dụ

Giả sử chúng ta có một bộ sưu tập có tên là pets với tài liệu sau:

{
	"_id" : 1,
	"name" : "Fetch",
	"type" : "Dog",
	"weight" : 20,
	"height" : 30
}

Cú pháp tốc ký

Dưới đây là một ví dụ về việc áp dụng $cond tới tài liệu đó bằng cú pháp viết tay:

db.pets.aggregate(
  [
    { $project: { 
        _id: 0,
        isCanine: { 
          $cond: { if: { "$type": "Dog" }, then: "Yes", else: "No" }
          }
      }
    }
  ]
)

Kết quả:

{ "isCanine" : "Yes" }

Trong ví dụ này, chúng tôi đã so sánh type trường thành một giá trị theo nghĩa đen.

Trong ví dụ sau, chúng tôi so sánh hai trường trong tài liệu.

db.pets.aggregate(
  [
    { $project: { 
        _id: 0,
        bodyType: { 
          $cond: { 
            if: { 
              $gte: [ "$weight", "$height" ] }, 
              then: "Fat", 
              else: "Skinny" 
              }
          }
      }
    }
  ]
)

Kết quả:

{ "bodyType" : "Skinny" }

Cú pháp viết tắt

$cond toán tử cũng chấp nhận một cú pháp viết tắt để làm cho mã của bạn ngắn gọn hơn.

Viết tắt về cơ bản liên quan đến việc loại bỏ if , thenelse từ khóa.

Khi bạn làm điều này, bạn cần phải đặt các biểu thức trong một mảng.

Trong ví dụ này, chúng tôi viết lại ví dụ đầu tiên để sử dụng cú pháp viết tắt:

db.pets.aggregate(
  [
    { $project: { 
        _id: 0,
        isCanine: { 
          $cond: [ { "$type": "Dog" }, "Yes", "No" ]
          }
      }
    }
  ]
)

Kết quả:

{ "isCanine" : "Yes" }

Và đây là ví dụ thứ hai sử dụng tốc ký:

db.pets.aggregate(
  [
    { $project: { 
        _id: 0,
        bodyType: { 
          $cond: [
              { $gte: [ "$weight", "$height" ] }, 
              "Fat", 
              "Skinny" 
              ]
          }
      }
    }
  ]
)

Kết quả:

{ "bodyType" : "Skinny" }

  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Nhập nhiều hơn 1 tệp json bằng mongoimport

  2. MongoDB:đếm số lượng mục trong một mảng

  3. Trả lại tài liệu cuối cùng từ tra cứu

  4. Khớp với chuỗi con trong tổng hợp mongodb

  5. cơ sở dữ liệu node.js