Ubah project Anda tahap dalam pipa seperti di bawah ini:
projection stage melakukan dua hal berikut:
- Jika larik item
nullataudoes not exist, menghitung nilai bidang item sebagai[](array kosong.) - Selanjutnya memeriksa apakah
sizedariitemsyang baru saja dihitung bidangnya adalah0, jika0, lalu ubah nilainya menjadi array dengan objek default.
Kode panggung:
db.MyCollection.aggregate([
...
{$project:{"_id":"$$ROOT",
"items":{$cond:[
{$eq:[{$size:{$ifNull:["$items",[]]}},0]},
[{"quantity":0,"price":0}],
"$items"
]}}},
{$unwind:"$items"},
...
])