Wijzig uw project
fase in de pijplijn zoals hieronder:
De projection
stage doet de volgende twee dingen:
- Als de itemsarray
null
is ofdoes not exist
, berekent de waarde van het itemveld als[]
(een lege array.) - Controleert vervolgens of de
size
van de zojuist berekendeitems
veld is0
, als het0
is en verandert vervolgens de waarde in een array met standaardobject.
Stagecode:
db.MyCollection.aggregate([
...
{$project:{"_id":"$$ROOT",
"items":{$cond:[
{$eq:[{$size:{$ifNull:["$items",[]]}},0]},
[{"quantity":0,"price":0}],
"$items"
]}}},
{$unwind:"$items"},
...
])