MongoDB एग्रीगेशन में $setIntersection से ऐरे फ़िल्टर करना
$setIntersection ऑपरेटर दो या अधिक ऐरे के कॉमन एलिमेंट लौटाता है (सेट इंटरसेक्शन)।
कलेक्शन बनाएं और डॉक्यूमेंट इन्सर्ट करें
> db.filterArrayElementsDemo.insertOne({ "Scores": [10,45,67,78,90,98,99,92] });
{ "acknowledged": true, "insertedId": ObjectId("5cd2d582b64f4b851c3a13c8") }
डॉक्यूमेंट देखें
> db.filterArrayElementsDemo.find().pretty();
{
"_id": ObjectId("5cd2d582b64f4b851c3a13c8"),
"Scores": [10, 45, 67, 78, 90, 98, 99, 92]
}
$setIntersection से विशिष्ट वैल्यू फ़िल्टर करें
> db.filterArrayElementsDemo.aggregate([
{ $match: { _id: ObjectId("5cd2d582b64f4b851c3a13c8") }},
{ $project: {
Scores: {
$setIntersection: ["$Scores", [10, 98, 99]]
}
}}
]);
{ "_id": ObjectId("5cd2d582b64f4b851c3a13c8"), "Scores": [10, 98, 99] }
व्याख्या
- मूल ऐरे: [10, 45, 67, 78, 90, 98, 99, 92]
- फ़िल्टर ऐरे: [10, 98, 99]
- कॉमन एलिमेंट: [10, 98, 99]
- परिणाम क्रम फ़िल्टर ऐरे के क्रम का अनुसरण करता है
अन्य सेट ऑपरेटर
| ऑपरेटर | कार्य |
|---|---|
$setUnion | सभी यूनिक एलिमेंट (यूनियन) |
$setIntersection | कॉमन एलिमेंट (इंटरसेक्शन) |
$setDifference | पहले ऐरे में जो दूसरे में नहीं |
$setIsSubset | पहला ऐरे दूसरे का सबसेट है? |
$setEquals | दोनों ऐरे बराबर हैं? |