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

Lọc mảng tài liệu con trong khi vẫn trả về dữ liệu mẹ nếu trống

Bạn có thể sử dụng $ redact thay vì $ match trong trường hợp này, như thế này

db.collectionName.aggregate({
  $redact:{
    $cond:{ 
       if:{$and:[{$not:"$dealerName"},{$not:"$title"},{$eq:["$listed",false]}, 
       then: "$$PRUNE", 
       else: "$$DESCEND" 
    }
  }
})

Chúng ta cần điều kiện đầu tiên để bỏ qua các tài liệu cấp cao nhất, điều kiện thứ hai để bỏ qua cấp độ thứ hai và điều kiện thứ ba để cắt tỉa phương tiện. Không cần $ thư giãn trong trường hợp này!

Một điều nữa:$ redact chỉ có trong 2.6




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb tra cứu mảng các phần tử với kết quả kết hợp

  2. Duy trì tên thuộc tính Id trong tài liệu nhúng với trình điều khiển C # mongo

  3. Làm cách nào để triển khai truy vấn bộ lọc tìm kiếm bằng mongodb?

  4. Mongoid - truy vấn theo tài liệu được tham chiếu

  5. Tạo chế độ xem mongo phụ thuộc vào thời điểm hiện tại