अपना project संशोधित करें नीचे के रूप में पाइपलाइन में चरण:
projection स्टेज निम्नलिखित दो काम करता है:
- यदि आइटम सरणी
nullहै याdoes not exist, आइटम फ़ील्ड मान की गणना[]. के रूप में करता है (एक खाली सरणी।) - अगला जांचता है कि
sizeहाल ही में परिकलितitems. में से फ़ील्ड है0, अगर यह0है , फिर इसके मान को डिफ़ॉल्ट ऑब्जेक्ट के साथ एक सरणी में बदल देता है।
स्टेज कोड:
db.MyCollection.aggregate([
...
{$project:{"_id":"$$ROOT",
"items":{$cond:[
{$eq:[{$size:{$ifNull:["$items",[]]}},0]},
[{"quantity":0,"price":0}],
"$items"
]}}},
{$unwind:"$items"},
...
])