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— মাস ৪ এবং দিন ২৭ ফিল্টার করা হয়েছে।
ব্যবহারিক পরিস্থিতি: জন্মদিন, বার্ষিকৎসব, সালানা ইভেন্ট খুঁজে বের করতে পারফেক্ট।