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

MongoDB-এ প্রথম এবং শেষ ডকুমেন্ট দক্ষতার সাথে পাওয়া

MongoDB-এ কালেকশনের প্রথম এবং শেষ ডকুমেন্ট পাওয়ার সবচেয়ে দক্ষ পদ্ধতি হলো অ্যাগ্রিগেশন পাইপলাইনে $group স্টেজের সাথে $first এবং $last অ্যাকুমুলেটর ব্যবহার করা। এটি পুরো কালেকশন স্ক্যান না করেই ফলাফল দেয় (ইন্ডেক্স ব্যবহার করে)।

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

> db.demo73.insertOne({ "Name": "Chris" });
{ "acknowledged": true, "insertedId": ObjectId("5e29c41b71bf0181ecc4226c") }

> db.demo73.insertOne({ "Name": "Bob" });
{ "acknowledged": true, "insertedId": ObjectId("5e29c41e71bf0181ecc4226d") }

> db.demo73.insertOne({ "Name": "David" });
{ "acknowledged": true, "insertedId": ObjectId("5e29c42271bf0181ecc4226e") }

ডকুমেন্টগুলো দেখানো

> db.demo73.find();

আউটপুট (ইনসার্ট অর্ডার অনুযায়ী):

{ "_id": ObjectId("5e29c41b71bf0181ecc4226c"), "Name": "Chris" }
{ "_id": ObjectId("5e29c41e71bf0181ecc4226d"), "Name": "Bob" }
{ "_id": ObjectId("5e29c42271bf0181ecc4226e"), "Name": "David" }

প্রথম এবং শেষ ডকুমেন্ট পাওয়ার কোয়েরি

> db.demo73.aggregate([
  { 
    $group: { 
      _id: null, 
      first: { $first: "$$ROOT" }, 
      last: { $last: "$$ROOT" } 
    } 
  }
]);

ফলাফল

{ 
  "_id": null, 
  "first": { "_id": ObjectId("5e29c41b71bf0181ecc4226c"), "Name": "Chris" }, 
  "last": { "_id": ObjectId("5e29c42271bf0181ecc4226e"), "Name": "David" } 
}

ব্যাখ্যা:

  • $$ROOT - সম্পূর্ণ ডকুমেন্টকে রিপ্রেজেন্ট করে।
  • $first - গ্রুপের প্রথম ডকুমেন্ট (ন্যাচারাল অর্ডার/ইন্ডেক্স অনুযায়ী)।
  • $last - গ্রুপের শেষ ডকুমেন্ট।
  • _id: null - সব ডকুমেন্ট এক গ্রুপে।

সর্ট সহ প্রথম/শেষ (নির্দিষ্ট ফিল্ড অনুযায়ী)

যদি নির্দিষ্ট ফিল্ড অনুযায়ী প্রথম/শেষ চান, তবে $sort যোগ করুন:

db.demo73.aggregate([
  { $sort: { Name: 1 } },
  { $group: { _id: null, first: { $first: "$$ROOT" }, last: { $last: "$$ROOT" } } }
]);

বিকল্প পদ্ধতি (সিম্পল কেস)

  • প্রথম: db.demo73.find().sort({_id: 1}).limit(1)
  • শেষ: db.demo73.find().sort({_id: -1}).limit(1)

এই পদ্ধতিগুলো ইন্ডেক্স ব্যবহার করে খুব দ্রুত, কিন্তু অ্যাগ্রিগেশন পদ্ধতিটি একসাথে দুটি পাওয়ার জন্য উপযোগী।

  1. MySQL-এ আগামী মাসের প্রথম ও শেষ তারিখ বের করা

  2. MySQL-এ রো উপস্থিতি যাচাই করার সবচেয়ে দক্ষ উপায়

  3. MySQL-এ টেবিলের প্রথম এবং শেষ রেকর্ড বের করা

  4. পাইথনে সবচেয়ে দক্ষ স্ট্রিং কনক্যাটেনেশন পদ্ধতি