ใช้ Aggregate Framework พร้อม $month และ $dayOfMonth เพื่อแยกเดือนและวันจากวันที่ แล้วค้นหาตามเงื่อนไข เริ่มต้นด้วยการสร้างคอลเลกชันตัวอย่าง:
> 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();
คิวรี่ Aggregate ค้นหาเอกสารที่ LoginDate อยู่ในวันที่ 27 เดือน 4 (ทุกปี):
> db.monthAndDayDemo.aggregate( { "$project": { "m":{ "$month":"$LoginDate" }, "d": { "$dayOfMonth":"$LoginDate" } }}, { "$match":{ "m": 4, "d": 27 } } );ตัวดำเนินการวันที่ที่น่าสนใจ:
$year- ปี$month- เดือน (1-12)$dayOfMonth- วันของเดือน (1-31)$dayOfWeek- วันของสัปดาห์ (1=อาทิตย์, 7=เสาร์)$hour,$minute,$second- เวลา