কম্পিউটার টিউটোরিয়াল

MongoDB অ্যাগ্রিগেশন-এ $limit দিয়ে রেকর্ড সংখ্যা সীমাবদ্ধ করা

MongoDB অ্যাগ্রিগেশন পাইপলাইনে ফলাফলের রেকর্ড সংখ্যা সীমাবদ্ধ করতে $limit স্টেজ ব্যবহার করা হয়। এটি ইনপুট স্ট্রিম থেকে প্রথম Nটি ডকুমেন্ট পাস করে, বাকিগুলো ড্রপ করে।

নমুনা কালেকশন তৈরি

> db.demo240.insertOne({ "StudentName": "Chris" });
{ "acknowledged": true, "insertedId": ObjectId("5e441d969af932883c61ea3c") }

> db.demo240.insertOne({ "StudentName": "Bob" });
{ "acknowledged": true, "insertedId": ObjectId("5e441d9a9af932883c61ea3d") }

> db.demo240.insertOne({ "StudentName": "David" });
{ "acknowledged": true, "insertedId": ObjectId("5e441d9d9af932883c61ea3e") }

> db.demo240.insertOne({ "StudentName": "Mike" });
{ "acknowledged": true, "insertedId": ObjectId("5e441da19af932883c61ea3f") }

সমস্ত ডকুমেন্ট দেখানো

> db.demo240.find();

আউটপুট:

{ "_id": ObjectId("5e441d969af932883c61ea3c"), "StudentName": "Chris" }
{ "_id": ObjectId("5e441d9a9af932883c61ea3d"), "StudentName": "Bob" }
{ "_id": ObjectId("5e441d9d9af932883c61ea3e"), "StudentName": "David" }
{ "_id": ObjectId("5e441da19af932883c61ea3f"), "StudentName": "Mike" }

$limit ব্যবহার করে প্রথম ৩টি রেকর্ড

> db.demo240.aggregate([ { $limit: 3 } ]);

ফলাফল

{ "_id": ObjectId("5e441d969af932883c61ea3c"), "StudentName": "Chris" }
{ "_id": ObjectId("5e441d9a9af932883c61ea3d"), "StudentName": "Bob" }
{ "_id": ObjectId("5e441d9d9af932883c61ea3e"), "StudentName": "David" }

ব্যাখ্যা: পাইপলাইনে প্রথম ৩টি ডকুমেন্ট পাস করেছে, চতুর্থটি (Mike) বাদ দিয়েছে।

$limit এর সাথে $sort (সর্ট করে লিমিট)

নাম অনুযায়ী সর্ট করে প্রথম ২টি:

db.demo240.aggregate([
  { $sort: { StudentName: 1 } },
  { $limit: 2 }
]);

ফলাফল: Bob, Chris (অ্যালফাবেটিক্যালি প্রথম দুটি)।

$skip এবং $limit (পেজিনেশন)

পেজ ২ (প্রতি পেজ ২ রেকর্ড):

db.demo240.aggregate([
  { $sort: { StudentName: 1 } },
  { $skip: 2 },
  { $limit: 2 }
]);

সতর্কতা

  • $limit পাইপলাইনের শুরুর দিকে রাখলে পরপরের স্টেজ কম ডেটা প্রসেস করে (পারফরম্যান্স ভালো)।
  • $sort এর পরে $limit রাখলে MongoDB অপ্টিমাইজেশন করে (টপ-K সর্ট)।
  1. MongoDB-এ ক্যাপড কালেকশন ব্যবহার করে ডকুমেন্ট সংখ্যা লিমিট করা

  2. MongoDB-এ ডকুমেন্ট সংখ্যা (Count) বের করা (count() / countDocuments())

  3. MongoDB-তে $slice ব্যবহার করে ফিল্ডের রিটার্নিং ভ্যালু লিমিট করা

  4. জাভা ব্যবহার করে MongoDB কালেকশন থেকে ডেটা রিট্রিভ করার সময় রেকর্ডের সংখ্যা কীভাবে সীমিত করবেন?