Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

คิวรี่ MongoDB ค้นหาตามเดือนและวัน בלבד (ไม่รวมปี)

ใช้ 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 - เวลา