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

Làm cách nào để giữ lại các giá trị có độ dài bằng 0 trong giai đoạn $ unwind của đường ống tổng hợp trong Mongo?

Sửa đổi project của bạn giai đoạn trong quy trình như sau:

Phép chiếu projection giai đoạn thực hiện hai điều sau:

  • Nếu mảng các mục là null hoặc does not exist , tính toán giá trị trường theitems dưới dạng [] (một mảng trống.)
  • Tiếp theo, hãy kiểm tra xem size trong số các mục projection vừa được tính toán trường là 0 , ifit là 0 , sau đó thay đổi giá trị của nó thành một mảng có đối tượng mặc định.

Mã sân khấu:

db.MyCollection.aggregate([
...
{$project:{"_id":"$$ROOT",
           "items":{$cond:[
                          {$eq:[{$size:{$ifNull:["$items",[]]}},0]},
                          [{"quantity":0,"price":0}],
                          "$items"
                          ]}}},
{$unwind:"$items"},
...
])



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Lưu trữ hình ảnh trong Mongodb phân phát chúng với Nodejs

  2. Phân tích cú pháp JSON thành tài liệu MONGODB

  3. Kết nối với bộ bản sao MongoDB bằng rmongodb

  4. Nhúng lược đồ đang gây ra lỗi

  5. Mongoose &Express:Cách xóa, tạo và lưu trữ dữ liệu tham khảo đúng cách