अपना 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"},
...
])