MongoDB 3.2 से शुरू करके, हम $filterका उपयोग कर सकते हैं। कोड>
इसके लिए कुशलता से ऑपरेटर। $filter
. में की सशर्त अभिव्यक्ति हमें $setIsSubset
का उपयोग करने की आवश्यकता है कोड>
ऑपरेटर यह जांचने के लिए कि क्या दिया गया मान सरणी में है। इसका मुख्य कारण यह है कि हम $in<का उपयोग नहीं कर सकते /कोड>
$project
में क्वेरी ऑपरेटर
मंच।
db.collection.aggregate([
{ "$project": {
"list": {
"$filter": {
"input": "$list",
"as": "lst",
"cond": { "$setIsSubset": [ [ "$$lst.a" ], [ 1, 5 ] ] }
}
}
}}
])
MongoDB 3.0.x से पीछे की ओर आपको का उपयोग करके एक अलग, कम कुशल दृष्टिकोण की आवश्यकता है। $नक्शा
ऑपरेटर और $setDifference
ऑपरेटर।
db.collection.aggregate([
{ "$project": {
"list": {
"$setDifference": [
{ "$map": {
"input": "$list",
"as": "lst",
"in": {
"$cond": [
{ "$setIsSubset": [ [ "$$lst.a" ], [ 1, 5 ] ] },
"$$lst",
false
]
}
}},
[false]
]
}
}}
])