Ändra ditt project
steg i pipelinen enligt nedan:
projection
scenen gör följande två saker:
- Om objektmatrisen är
null
ellerdoes not exist
, beräknar objektfältets värde som[]
(en tom array.) - Nästa kontrollerar om
size
av de just beräknadeitems
fältet är0
, ifit är0
, ändrar sedan dess värde till en array med standardobjekt.
Scenkod:
db.MyCollection.aggregate([
...
{$project:{"_id":"$$ROOT",
"items":{$cond:[
{$eq:[{$size:{$ifNull:["$items",[]]}},0]},
[{"quantity":0,"price":0}],
"$items"
]}}},
{$unwind:"$items"},
...
])