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

mongoose tổng hợp bằng cách sử dụng $ tồn tại trong $ cond

$exists không được hỗ trợ trong aggregate truy vấn của MongoDB . Vì vậy, trong aggregate truy vấn thay vì $exists có thể sử dụng $ifNull .

cú pháp:

{ $ifNull: [ <expression>, <replacement-expression-if-null> ] }

để biết thêm

Đã cập nhật:

để lấy b giá trị là true hoặc false có thể thử truy vấn này

db.test.aggregate([
    {
        $project: {
            b: { 
                $cond: [
                    {$ifNull: ['$b', false]}, // if
                    true, // then
                    false // else
                ]
            }
        }
    }
])

Giải thích:

b = $cond: [ 'if condition satisfied', 'then true', 'else false' ];

trong đó condition = {$ifNull: ['$b', false]} Đây if $b không tồn tại thì condition = false nếu không thì condition = true .

vì vậy nếu condition = true sau đó trả về rồi kết quả điều đó có nghĩa là b = true
if condition = false sau đó trả về kết quả khác nghĩa là b = false



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Truy vấn dựa trên các trường được tính toán với Mongoid

  2. Khởi động máy chủ mongodb bằng tập lệnh npm

  3. spring-data-mongo - tham số truy vấn tùy chọn?

  4. Firebase UID có phải là duy nhất trên nhiều ứng dụng không?

  5. Sự khác biệt giữa MongoTemplate của Spring Data và MongoRepository là gì?