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ặcdoes 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ụcprojection
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"},
...
])