$match दस्तावेज़ों को फ़िल्टर करके केवल उन दस्तावेज़ों को पास करता है जो निर्दिष्ट शर्तों से मेल खाते हैं अगले पाइपलाइन चरण में।
$प्रोजेक्ट अनुरोधित फ़ील्ड वाले दस्तावेज़ों के साथ पाइपलाइन में अगले चरण तक जाता है।
आइए एक उदाहरण देखें और दस्तावेजों के साथ एक संग्रह बनाएं -
> db.demo545.insert({Name:"Chris",details:{SubjectScore1:56,SubjectScore2:56}}) WriteResult({ "nInserted" : 1 }) > db.demo545.insert({Name:"David",details:{SubjectScore1:78,SubjectScore2:78}}) WriteResult({ "nInserted" : 1 })
संग्रह से सभी दस्तावेज़ों को खोजने () विधि की सहायता से प्रदर्शित करें -
> db.demo545.find();
यह निम्नलिखित आउटपुट देगा -
{ "_id" : ObjectId("5e8e246e9e5f92834d7f05d5"), "Name" : "Chris", "details" : { "SubjectScore1" : 56, "SubjectScore2" : 56 } } { "_id" : ObjectId("5e8e24709e5f92834d7f05d6"), "Name" : "David", "details" : { "SubjectScore1" : 78, "SubjectScore2" : 78 } }
$match और $project को लागू करने के लिए क्वेरी निम्नलिखित है -
>db.demo545.aggregate([{$match:{}},{$project:{"_id":0,"details.SubjectScore1":1,out:"$details .SubjectScore2"}},{$group:{_id:"$out"}}])
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
{ "_id" : 78 } { "_id" : 56 }