$match (ফিল্টার) এবং $project (ফিল্ড সিলেকশন) পাইপলাইন স্টেজ
MongoDB Aggregation-এ $match স্টেজ কোয়েরি শর্ত দিয়ে ডকুমেন্ট ফিল্টার করে, $project স্টেজ নির্দিষ্ট ফিল্ডগুলো সিলেক্ট/রিনেম করে পরবর্তী স্টেজে পাস করে।
নমুনা সংগ্রহ তৈরি
> 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();
আউটপুট:
$match (খালি = সব) এবং $project দিয়ে SubjectScore1 এবং SubjectScore2 বের করা
> db.demo545.aggregate([{$match:{}},{$project:{"_id":0,"details.SubjectScore1":1,out:"$details.SubjectScore2"}},{$group:{_id:"$out"}}])ফলাফল (SubjectScore2-এর ইউনিক মান):
ব্যাখ্যা: $match: {} সব ডকুমেন্ট পাস করে। $project-এ _id:0 লুকানো, details.SubjectScore1:1 দেখানো, এবং out নামের নতুন ফিল্ডে details.SubjectScore2 রাখা। $group: {_id: "$out"} দিয়ে SubjectScore2-এর ইউনিক মান (56, 78) বের করা হয়েছে।