आप नीचे दी गई क्वेरी का उपयोग कर सकते हैं।
कुछ चीज़ें जो मैंने बदली हैं।
1.नहीं $elemMatch
एकल मानदंड के लिए आवश्यक है। इसके बजाय डॉट नोटेशन का प्रयोग करें।
2. उपसमूह के $map
. को स्थानांतरित करें समूह के अंदर $map
ऑपरेटर।
[
{"$match":{
"empId":"19107",
"address.country":"AUS",
"group.primaryGroup.primary":"Y",
"group.subGroup.primarySubGroup.primary":"Y"
}},
{"$project":{
"empId":1,
"mobile":1,
"address":{"$filter":{"input":"$address","as":"d","cond":{"$eq":["$$d.country","AUS"]}}},
"group":{
"$map":{
"input":"$group",
"as":"v",
"in":{
"groupId":"$$v.groupId",
"primaryGroup":{"$filter":{"input":"$$v.primaryGroup","as":"vp","cond":{"$eq":["$$vp.primary","Y"]}}},
"subGroup":{
"$map":{
"input":"$$v.subGroup",
"as":"n",
"in":{
"subGroupId":"$$n.subGroupId",
"primarySubGroup":{"$filter":{"input":"$$n.primarySubGroup","as":"mp","cond":{"$eq":["$$mp.primary","Y"]}}}
}
}
}
}
}
}
}}
]