$match documents को filter करके केवल matching documents को next pipeline stage में pass करता है।
$project requested fields के साथ documents को pipeline के next stage में pass करता है।
Collection बनाना
> 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 })
सभी Documents Display करना
> db.demo545.find();
Output:
{ "_id" : ObjectId("5e8e246e9e5f92834d7f05d5"), "Name" : "Chris", "details" : { "SubjectScore1" : 56, "SubjectScore2" : 56 } }
{ "_id" : ObjectId("5e8e24709e5f92834d7f05d6"), "Name" : "David", "details" : { "SubjectScore1" : 78, "SubjectScore2" : 78 } }
$match और $project Implement करने का Query
>db.demo545.aggregate([{$match:{}},{$project:{"_id":0,"details.SubjectScore1":1,out:"$details.SubjectScore2"}},{$group:{_id:"$out"}}])
Output:
{ "_id" : 78 }
{ "_id" : 56 }
व्याख्या: यहाँ $match: {} सभी documents pass करता है। $project में _id: 0 से _id exclude किया, details.SubjectScore1 include किया, और out field में SubjectScore2 copy किया। फिर $group ने out field द्वारा group किया।