Rediger dit project
fase i pipelinen som nedenfor:
projection
stage gør følgende to ting:
- Hvis elementer-arrayet er
null
ellerdoes not exist
, beregner elementets feltværdi som[]
(en tom matrix.) - Næste kontrollerer, om
size
af de netop beregnedeitems
feltet er0
, iffit er0
, og ændrer derefter dens værdi til et array med standardobjekt.
Fasekode:
db.MyCollection.aggregate([
...
{$project:{"_id":"$$ROOT",
"items":{$cond:[
{$eq:[{$size:{$ifNull:["$items",[]]}},0]},
[{"quantity":0,"price":0}],
"$items"
]}}},
{$unwind:"$items"},
...
])