MongoDB-এ সর্ট এবং লিমিট ব্যবহার করে সর্বোচ্চ মান বের করা
সর্বোচ্চ মান বিশিষ্ট ডকুমেন্ট পেতে sort() নিবৃত্ত ক্রমে (descending) এবং limit(1) ব্যবহার করা সবচেয়ে সহজ এবং দক্ষ পদ্ধতি।
নমুনা ডেটা তৈরি
> db.demo241.insertOne({"Marks":67});
> db.demo241.insertOne({"Marks":89});
> db.demo241.insertOne({"Marks":78});
সকল ডকুমেন্ট দেখানো
> db.demo241.find();
আউটপুট:
{ "_id" : ObjectId(...), "Marks" : 67 }
{ "_id" : ObjectId(...), "Marks" : 89 }
{ "_id" : ObjectId(...), "Marks" : 78 }
সর্বোচ্চ মার্কস খুঁজে বের করা
> db.demo241.find().sort({Marks: -1}).limit(1);
আউটপুট:
{ "_id" : ObjectId(...), "Marks" : 89 }
ব্যাখ্যা
sort({Marks: -1}) — মার্কস অনুযায়ী অবরোহ ক্রমে সর্ট করে (সর্বোচ্চ প্রথমে)limit(1) — শুধু প্রথম ডকুমেন্ট রিটার্ন করে
Aggregation Pipeline বিকল্প
বড় ডেটাসেটে Aggregation Pipeline আরও দক্ষ হতে পারে:
> db.demo241.aggregate([
{ $sort: { Marks: -1 } },
{ $limit: 1 }
]);
একাধিক টপ রেকর্ড পেতে
> db.demo241.find().sort({Marks: -1}).limit(3); // টপ ৩
ইন্ডেক্সের গুরুত্ব
সর্ট অপারেশন দ্রুত করতে Marks ফিল্ডে ইন্ডেক্স তৈরি করুন:
> db.demo241.createIndex({ Marks: -1 });
ইন্ডেক্স ছাড়া বড় কালেকশনে সর্ট মেমরি লিমিট (32MB) ছাড়াতে পারে।