दस्तावेज़ फ़िल्टर करने के लिए $match का उपयोग करें। $match केवल उन दस्तावेज़ों को पास करता है जो निर्दिष्ट शर्त से मेल खाते हैं, अगले पाइपलाइन स्टेज के लिए।
नमूना डेटा बनाना
> db.demo629.insertOne( {
"Subject": ["MySQL", "MongoDB"],
"details": [ { Name:"Chris", "Marks":78 }, { Name:"David", "Marks":89 } ]
} );
दस्तावेज़ देखना
> db.demo629.find();
{ "Subject" : [ "MySQL", "MongoDB" ], "details" : [ { "Name" : "Chris", "Marks" : 78 }, { "Name" : "David", "Marks" : 89 } ] }
सिंपल क्वेरी से फ़िल्टर करने की एग्रीगेशन क्वेरी
> db.demo629.aggregate([
{"$unwind": "$details"},
{"$match": {"details.Name": 'Chris', "Subject": {"$in":["Java","MySQL","Python","C","C++"]}}},
{"$project": {"details": 1, "_id": 0}}
]);
परिणाम:
{ "details" : { "Name" : "Chris", "Marks" : 78 } }
व्याख्या: $unwind details ऐरे को फ्लैट करता है, $match Name="Chris" और Subject सूची में मौजूद होने पर फ़िल्टर करता है, $project केवल details फील्ड दिखाता है (_id छुपाता है)।