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

MongoDB-এ বর্তমান এবং পূর্ববর্তী ডকুমেন্ট বের করা (Sort, Limit)


MongoDB-এ sort() এবং limit() ব্যবহার করে বর্তমান এবং আগের ডকুমেন্ট পাওয়া

MongoDB-এ নির্দিষ্ট আইডির ডকুমেন্ট এবং তার আগের (Previous) ডকুমেন্ট একসাথে বের করতে sort({_id: -1}) (ডেসেন্ডিং) এবং limit(2) ব্যবহার করা হয়। এটি টাইম-সিরিজ বা লগ ডেটা-এ খুব কাজে লাগে।

১. কালেকশন ও ক্রমাগত আইডি-তে ডেটা তৈরি

> db.demo360.insertOne({id:101,"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e56a10c54a481fef8ec7a15") }
> db.demo360.insertOne({id:102,"Name":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e56a11254a481fef8ec7a16") }
> db.demo360.insertOne({id:103,"Name":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e56a11a54a481fef8ec7a17") }
> db.demo360.insertOne({id:104,"Name":"Mike"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e56a11f54a481fef8ec7a18") }

২. সব ডকুমেন্ট দেখানো

> db.demo360.find();

আউটপুট:


৩. কোয়েরি: id 102-এর সাথে তার আগের ডকুমেন্ট (id 101) বের করা

> db.demo360.find({ id: { $lte: 102 } }, {id:1, Name: 1 }).sort({_id: -1}).limit(2);

ব্যাখ্যা:

  • {id: {$lte: 102}} - id 102 বা তার চেয়ে ছোট (আগের) ডকুমেন্টগুলো ফিল্টার।
  • {id:1, Name: 1} - প্রজেকশন: শুধু id এবং Name ফিল্ড।
  • .sort({_id: -1}) - _id ডেসেন্ডিং (সাম্প্রতিক আগে) সর্ট। MongoDB _id-তে টাইমস্ট্যাম্প থাকে।
  • .limit(2) - শুধু ২টি ডকুমেন্ট (বর্তমান + আগের) নেয়।

৪. ফলাফল

আউটপুটে প্রথমে id 102 (বর্তমান), তারপর id 101 (পূর্ববর্তী) আসেছে কারণ সর্ট ডেসেন্ডিং। এটি "Previous/Next" পেজিনেশন বা কম্পারিজনের জন্য আদর্শ।


  1. MongoDB-এ ফার্স্টনেম এবং লাস্টনেম কম্বাইন করে খুঁজে বের করা

  2. MongoDB-এ নির্দিষ্ট FirstName এবং LastName সম্বয় ডকুমেন্ট খোঁজা ($and + $in)

  3. MongoDB-তে নির্দিষ্ট মান থেকে বড় বা সমান ভ্যালু খোঁজা ($gte)

  4. MongoDB-তে এমবেডেড ডকুমেন্ট অ্যারে কোয়েরি করে নতুন এলিমেন্ট যোগ করা ($push + $nin)