आप $cond
जोड़ सकते हैं ऑपरेटर अंतराल के लिए खाते के बाद $filter
खाली सरणी मानों को फ़िल्टर करने के लिए।
आपको दो बदलावों की आवश्यकता है।
शून्य मानों के साथ सरणी के बजाय अंतराल के लिए [] मानों को संग्रहीत करने के लिए पहला परिवर्तन।
आंतरिक $let अभिव्यक्ति को नीचे अपडेट करें:
{
"$let":{
"vars":{"five":...},
"in":{
"$cond":[
{"$eq":["$$five",[]]},
"$$five",
[{"$arrayElemAt":[{"$arrayElemAt":["$$five",-1]},0]},
....
{"$arrayElemAt":[{"$arrayElemAt":["$$five",-1]},-1]}]
]
}
}
}
आउटपुट से रिक्त सरणी मानों को फ़िल्टर करने के लिए दूसरा परिवर्तन।
{
"$project":{
"data":{
"$let":{
"vars":{"mints":...},
"in":{"$filter":{"input":{"$map":...},as:"flr", "cond":{"$ne":["$$flr",[]]}}}
}
}
}
}