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

MongoDB-তে টপ N সারি (Top N Rows) কোয়েরি করার পদ্ধতি


MongoDB-তে অগ리게শন ফ্রেমওয়ার্ক ব্যবহার করে টপ N সারি কোয়েরি করা

MongoDB-তে টপ N সারি পেতে অগ리게শন ফ্রেমওয়ার্কের $sort, $limit এবং $match স্টেজগুলো ব্যবহার করতে হয়।

ধাপ ১: ডকুমেন্টসহ কালেকশন তৈরি করুন

> db.topNRowsDemo.insertOne({"StudentName":"Larry","Score":78});
{ "acknowledged" : true, "insertedId" : ObjectId("5ca26eee6304881c5ce84b91") }
> db.topNRowsDemo.insertOne({"StudentName":"Chris","Score":45});
{ "acknowledged" : true, "insertedId" : ObjectId("5ca26ef66304881c5ce84b92") }
> db.topNRowsDemo.insertOne({"StudentName":"Mike","Score":65});
{ "acknowledged" : true, "insertedId" : ObjectId("5ca26efe6304881c5ce84b93") }
> db.topNRowsDemo.insertOne({"StudentName":"Adam","Score":55});
{ "acknowledged" : true, "insertedId" : ObjectId("5ca26f066304881c5ce84b94") }
> db.topNRowsDemo.insertOne({"StudentName":"John","Score":86});
{ "acknowledged" : true, "insertedId" : ObjectId("5ca26f0f6304881c5ce84b95") }

ধাপ ২: সব ডকুমেন্ট প্রদর্শন করুন

> db.topNRowsDemo.find().pretty();

আউটপুট:

{
  "_id" : ObjectId("5ca26eee6304881c5ce84b91"),
  "StudentName" : "Larry",
  "Score" : 78
}
{
  "_id" : ObjectId("5ca26ef66304881c5ce84b92"),
  "StudentName" : "Chris",
  "Score" : 45
}
{
  "_id" : ObjectId("5ca26efe6304881c5ce84b93"),
  "StudentName" : "Mike",
  "Score" : 65
}
{
  "_id" : ObjectId("5ca26f066304881c5ce84b94"),
  "StudentName" : "Adam",
  "Score" : 55
}
{
  "_id" : ObjectId("5ca26f0f6304881c5ce84b95"),
  "StudentName" : "John",
  "Score" : 86
}

ধাপ ৩: টপ N সারি কোয়েরি করুন

> db.topNRowsDemo.aggregate([
  {$sort: {StudentName: 1}},
  {$limit: 5},
  {$match: {Score: {$gt: 65}}}
]).pretty();

ফলাফল:

{
  "_id" : ObjectId("5ca26f0f6304881c5ce84b95"),
  "StudentName" : "John",
  "Score" : 86
}
{
  "_id" : ObjectId("5ca26eee6304881c5ce84b91"),
  "StudentName" : "Larry",
  "Score" : 78
}

ব্যাখ্যা: এই কোয়েরিটি প্রথমে StudentName অনুযায়ী সর্ট করে (১ = আসেন্ডিং), তারপর ৫টি ডকুমেন্ট লিমিট করে, এবং সর্বশেষে Score ৬৫-এর চেয়ে বড় olan ডকুমেন্টগুলো ফিল্টার করে। ফলাফলে John (৮৬) এবং Larry (৭৮) দুটি ডকুমেন্ট পাওয়া গেছে।

টিপস: সঠিক টপ N রেজাল্ট পেতে সাধারণত প্রথমে $sort (যে ফিল্ডে টপ চাইবেন তার অনুযায়ী), তারপর $limit ব্যবহার করা উচিত।

  1. MongoDB-তে LIMIT ব্যবহার করে কোয়ারি করার পদ্ধতি

  2. MongoDB কোয়ারিতে নির্দিষ্ট কলাম সিলেক্ট করা

  3. MongoDB-এ সাব-ডকুমেন্টসে ফাইন্ড কোয়েরি চালানো

  4. MongoDB-এ কেস-ইনসেনসিটিভ (Case-Insensitive) "Like" কোয়েরি (Regex /i)