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

MongoDB-এ সর্ট এবং লিমিট দিয়ে সর্বশেষ N রেকর্ড পাবলিশ করা


সর্বশেষ N রেকর্ড পাওয়া: sort() + limit()

MongoDB-এ নতুন যোগ হওয়া রেকর্ডগুলো (সাধারণত _id বা টাইমস্ট্যাম্প অনুযায়ী) সর্ট করে নির্দিষ্ট সংখ্যায় লিমিট করতে sort() এবং limit() চেইন করা হয়।

নমুনা ডেটা তৈরি

> db.demo454.insertOne({ "ClientName": "Chris" })
> db.demo454.insertOne({ "ClientName": "John" })
> db.demo454.insertOne({ "ClientName": "Bob" })
> db.demo454.insertOne({ "ClientName": "David" })
> db.demo454.insertOne({ "ClientName": "Mike" })

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

> db.demo454.find()

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

{ "_id": ObjectId("..."), "ClientName": "Chris" }
{ "_id": ObjectId("..."), "ClientName": "John" }
{ "_id": ObjectId("..."), "ClientName": "Bob" }
{ "_id": ObjectId("..."), "ClientName": "David" }
{ "_id": ObjectId("..."), "ClientName": "Mike" }

সর্বশেষ ৩টি রেকর্ড (ClientName ডিসেন্ডিং) পাওয়া

> db.demo454.find().sort({ ClientName: -1 }).limit(3)

ফলাফল:

{ "_id": ObjectId("..."), "ClientName": "Mike" }
{ "_id": ObjectId("..."), "ClientName": "John" }
{ "_id": ObjectId("..."), "ClientName": "David" }

ব্যাখ্যা

  • sort({ ClientName: -1 }): ClientName ডিসেন্ডিং অর্ডারে সর্ট করে (Z-A)
  • limit(3): শুধু প্রথম ৩টি ডকুমেন্ট রিটার্ন করে
  • গুরুত্বপূর্ণ: রিয়েল-টাইম "লেটেস্ট" রেকর্ডের জন্য _id (ObjectId-তে টাইমস্ট্যাম্প থাকে) বা createdAt ফিল্ড দিয়ে সর্ট করুন: sort({ _id: -1 })
  • পেইনেশন করতে skip() দিয়ে পেজ নম্বর অনুযায়ী ডেটা নেওয়া যায়

নোট: উদাহরণে ClientName স্ট্রিং দিয়ে সর্ট করা হয়েছে, যা প্রাকৃতিক "লেটেস্ট" নয়।

  1. MongoDB-এ গড় (Average) এর চেয়ে বড় মান वाले ডকুমেন্ট বের করা

  2. MongoDB-এ জন্ম তারিখ থেকে বয়স ক্যালকুলেট করা

  3. MySQL-এ টেবিলে সর্বশেষ ID वाली রেকর্ড প্রদর্শন করা

  4. MySQL-এ DATE_ADD ব্যবহার করে টেবিলের তারিখ আপডেট করা (বছর যোগ/বিয়োগ)