आप $filter
का इस्तेमाल कर सकते हैं
और $setUnion
/$concatArrays
ऑपरेटरों को आपके दस्तावेज़ों को संयोजित और फ़िल्टर करने के लिए। साथ ही आपको $ifNull
का इस्तेमाल करना होगा
लापता फ़ील्ड को खाली सरणी से बदलने के लिए ऑपरेटर।
db.collection.aggregate([
{ "$project": {
"web_images": {
"$filter": {
"input": {
"$setUnion": [
{ "$ifNull": [ "$pictures", [] ] },
{ "$ifNull": [ "$logos", [] ] }
]
},
"as": "p",
"cond": { "$eq": [ "$$p.web", "true" ] }
}
}
}},
{ "$match": { "web_images.0": { "$exists": true } } }
])