প্রতিটি গ্রুপে (যেমন CountryName) সর্বোচ্চ মান (Marks) বের করতে $group এবং $max ব্যবহার করুন। একটি কালেকশন তৈরি করুন:
> db.demo659.insertOne({Name:"Chris",CountryName:"US","Marks":50});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea1a50724113ea5458c7cf9") }
> db.demo659.insertOne({Name:"David",CountryName:"US","Marks":60});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea1a50724113ea5458c7cfa") }
> db.demo659.insertOne({Name:"Mike",CountryName:"US","Marks":55});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea1a50724113ea5458c7cfb") }
> db.demo659.insertOne({Name:"Chris",CountryName:"UK","Marks":75});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea1a50724113ea5458c7cfc") }
> db.demo659.insertOne({Name:"David",CountryName:"UK","Marks":54});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea1a50724113ea5458c7cfd") }
> db.demo659.insertOne({Name:"Mike",CountryName:"UK","Marks":72});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea1a50824113ea5458c7cfe") }
find() দিয়ে ডকুমেন্ট দেখান:
> db.demo659.find();
আউটপুট:
CountryName অনুযায়ী গ্রুপ করে সর্বোচ্চ Marks বের করার কোয়ারি:
> db.demo659.aggregate( { $group: { _id: {CountryName: "$CountryName" }, 'MaxMarks': { $max : "$Marks" } }})আউটপুট:
ব্যাখ্যা:
$groupএ_idঅবজেক্ট দিয়ে গ্রুপিং কী তৈরি করা হয়েছে।$max: "$Marks"প্রতিটি গ্রুপের সর্বোচ্চ মান বের করে। পুরো ডকুমেন্ট (নামসহ) পেতে চাইলে$$ROOTবা$firstসোর্টের সাথে ব্যবহার করুন।