MongoDB-এ প্রতিটি গ্রুপে সর্বোচ্চ মানযুক্ত ডকুমেন্ট পেতে $sort এবং $group অপারেটর একসাথে ব্যবহার করতে হয়।
উদাহরণ ডেটা তৈরি করি:
> db.maxAttributePerGroup.insertOne({"StudentFirstName": "John", "StudentLastName": "Smith", "StudentAge": 29, "StudentId": 10});
> db.maxAttributePerGroup.insertOne({"StudentFirstName": "Carol", "StudentLastName": "Taylor", "StudentAge": 19, "StudentId": 10});
> db.maxAttributePerGroup.insertOne({"StudentFirstName": "Adam", "StudentLastName": "Smith", "StudentAge": 34, "StudentId": 20});
> db.maxAttributePerGroup.insertOne({"StudentFirstName": "Bob", "StudentLastName": "Taylor", "StudentAge": 58, "StudentId": 20});
প্রতি গ্রুপে (StudentId অনুযায়ী) সর্বোচ্চ বয়স (StudentAge) ওখানের ডকুমেন্ট পাওয়ার কোয়েরি:
> db.maxAttributePerGroup.aggregate([
{$sort: {"StudentId": 1, "StudentAge": -1}},
{$group: {
"_id": "$StudentId",
"StudentAge": {$first: "$StudentAge"},
"StudentFirstName": {$first: "$StudentFirstName"},
"StudentLastName": {$first: "$StudentLastName"}
}}
]).pretty();
ফলাফল:
{
"_id": 20,
"StudentAge": 58,
"StudentFirstName": "Bob",
"StudentLastName": "Taylor"
}
{
"_id": 10,
"StudentAge": 29,
"StudentFirstName": "John",
"StudentLastName": "Smith"
}
এখানে প্রথমে StudentAge অবরোহী ক্রমে সর্ট করা হয়েছে, তারপর $group-এ $first ব্যবহার করে প্রতিটি গ্রুপের প্রথম (সর্বোচ্চ বয়সীয়) ডকুমেন্ট নেওয়া হয়েছে।