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

MongoDB-এ শুধু মাস এবং দিন দিয়ে ডেটা খুঁজে বের করার পদ্ধতি

MongoDB-এ তারিখ ফিল্ড থেকে শুধু মাস (month) এবং দিন (day) বের করে ক্যোয়ারি করতে এগ্রিগেশন পাইপলাইন ($project, $month, $dayOfMonth, $match) ব্যবহার করুন।

উদাহরণ

বিভিন্ন বছরের একই মাস-দিন সহ ডকুমেন্ট তৈরি করুন:

> db.monthAndDayDemo.insertOne({"LoginDate": new ISODate("2019-04-27")});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefbcaeef71edecf6a1f6b2") }

> db.monthAndDayDemo.insertOne({"LoginDate": new ISODate("2018-04-30")});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefbcb7ef71edecf6a1f6b3") }

> db.monthAndDayDemo.insertOne({"LoginDate": new ISODate("2018-04-27")});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefbcbcef71edecf6a1f6b4") }

> db.monthAndDayDemo.insertOne({"LoginDate": new ISODate("2016-04-27")});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefbdaaef71edecf6a1f6b5") }

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

> db.monthAndDayDemo.find();

আউটপুট:

{ "_id" : ObjectId("5cefbcaeef71edecf6a1f6b2"), "LoginDate" : ISODate("2019-04-27T00:00:00Z") }
{ "_id" : ObjectId("5cefbcb7ef71edecf6a1f6b3"), "LoginDate" : ISODate("2018-04-30T00:00:00Z") }
{ "_id" : ObjectId("5cefbcbcef71edecf6a1f6b4"), "LoginDate" : ISODate("2018-04-27T00:00:00Z") }
{ "_id" : ObjectId("5cefbdaaef71edecf6a1f6b5"), "LoginDate" : ISODate("2016-04-27T00:00:00Z") }

এপ্রিল ২৭ (মাস ৪, দিন ২৭) তে লগইন করা ইউজাররা বের করা

> db.monthAndDayDemo.aggregate([
    { "$project": { "m": { "$month": "$LoginDate" }, "d": { "$dayOfMonth": "$LoginDate" } } },
    { "$match": { "m": 4, "d": 27 } }
]);

আউটপুট:

{ "_id" : ObjectId("5cefbcaeef71edecf6a1f6b2"), "m" : 4, "d" : 27 }
{ "_id" : ObjectId("5cefbcbcef71edecf6a1f6b4"), "m" : 4, "d" : 27 }
{ "_id" : ObjectId("5cefbdaaef71edecf6a1f6b5"), "m" : 4, "d" : 27 }

ব্যাখ্যা:

  • $month — তারিখ থেকে মাস (১-১২) বের করে।
  • $dayOfMonth — তারিখ থেকে দিন (১-৩১) বের করে।
  • $project — নতুন ফিল্ড m এবং d তৈরি করা হয়েছে।
  • $match — মাস ৪ এবং দিন ২৭ ফিল্টার করা হয়েছে।

ব্যবহারিক পরিস্থিতি: জন্মদিন, বার্ষিকৎসব, সালানা ইভেন্ট খুঁজে বের করতে পারফেক্ট।

  1. MongoDB-এ ফিল্ড খুঁজে সেটি ডিলিট করা ($exists ও $unset)

  2. MongoDB-এ "@email" স্ট্রিং সার্চ করা ফিল্ড ভ্যালুতে

  3. MySQL-এ শুধু দিন ও মাস তুলনা করা (DATE_FORMAT ব্যবহার করে)

  4. MySQL-এ ORDER BY CASE WHEN দিয়ে করেন্ট ডেটের ভিত্তিতে দিন ও মাস অনুযায়ী সাজানো