Ubah project
Anda tahap dalam pipa seperti di bawah ini:
projection
stage melakukan dua hal berikut:
- Jika larik item
null
ataudoes not exist
, menghitung nilai bidang item sebagai[]
(array kosong.) - Selanjutnya memeriksa apakah
size
dariitems
yang 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"},
...
])