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

MongoDB-তে আজকের তারিখের আগের এক্সপায়ার্ড ডকুমেন্ট খুঁজে বের করা

MongoDB-এ $lte (less than or equal) অপারেটর এবং Date() ব্যবহার করে আজকের তারিখের আগের বা সমান তারিখের ডকুমেন্ট খুঁজে বের করা যায়।

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

getDocumentsExpiredDemo কালেকশনে চারটি ডকুমেন্ট ইনসার্ট করি যাতে ArrivalDate ফিল্ড থাকে। বর্তমান তারিখ ধরি ২০১৯-০৫-১১।

> db.getDocumentsExpiredDemo.insertOne({"ArrivalDate":new ISODate("2019-05-11")});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd563b17924bb85b3f4893b") }
> db.getDocumentsExpiredDemo.insertOne({"ArrivalDate":new ISODate("2019-01-01")});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd563bf7924bb85b3f4893c") }
> db.getDocumentsExpiredDemo.insertOne({"ArrivalDate":new ISODate("2019-05-10")});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd563ca7924bb85b3f4893d") }
> db.getDocumentsExpiredDemo.insertOne({"ArrivalDate":new ISODate("2019-02-01")});
{ "acknowledged" : true, "insertedId" : ObjectId("5cd563e77924bb85b3f4893e") }

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

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

আউটপুট:

{ "_id" : ObjectId("5cd563b17924bb85b3f4893b"), "ArrivalDate" : ISODate("2019-05-11T00:00:00Z") }
{ "_id" : ObjectId("5cd563bf7924bb85b3f4893c"), "ArrivalDate" : ISODate("2019-01-01T00:00:00Z") }
{ "_id" : ObjectId("5cd563ca7924bb85b3f4893d"), "ArrivalDate" : ISODate("2019-05-10T00:00:00Z") }
{ "_id" : ObjectId("5cd563e77924bb85b3f4893e"), "ArrivalDate" : ISODate("2019-02-01T00:00:00Z") }

$lte দিয়ে এক্সপায়ার্ড ডকুমেন্ট খুঁজা

new Date() বর্তমান তারিখ দেয়। $lte দিয়ে সমান বা কম তারিখ খুঁজি:

> db.getDocumentsExpiredDemo.find({ "ArrivalDate": { $lte : new Date() } });

আউটপুট:

{ "_id" : ObjectId("5cd563bf7924bb85b3f4893c"), "ArrivalDate" : ISODate("2019-01-01T00:00:00Z") }
{ "_id" : ObjectId("5cd563ca7924bb85b3f4893d"), "ArrivalDate" : ISODate("2019-05-10T00:00:00Z") }
{ "_id" : ObjectId("5cd563e77924bb85b3f4893e"), "ArrivalDate" : ISODate("2019-02-01T00:00:00Z") }

ব্যাখ্যা: ২০১৯-০৫-১১ (আজকের তারিখ) বাদ পড়েছে কারণ সেটি new Date() এর সমান, কিন্তু উদাহরণে আউটপুটে নেই — সম্ভবত সময় অংশ (time component) ভিন্ন। সঠিক রেজাল্ট পেতে ISODate("2019-05-11T23:59:59Z") বা $lt: new Date("2019-05-12") ব্যবহার করুন।

  1. MongoDB অ্যাগ্রিগেশন দিয়ে সবচেয়ে কম মার্কসuage वाले দুটি ডকুমেন্ট বের করা

  2. MongoDB-তে এমবেডেড ডকুমেন্ট কোয়েরি করা (aggregate + $unwind)

  3. MongoDB-তে $or অপারেটর ব্যবহার করে একাধিক শর্তে ডকুমেন্ট বের করা

  4. MongoDB ডকুমেন্টের নির্দিষ্ট ফিল্ড থেকে অ্যারে এলিমেন্ট কাউন্ট করা