ในการกรองแบบสอบถามตามรูปแบบวันที่ที่ระบุ ให้ใช้ $dateToString ให้เราสร้างคอลเลกชันที่มีเอกสาร -
> db.demo433.insertOne({"DueDate":new Date("2019-11-23")}); { "acknowledged" : true, "insertedId" : ObjectId("5e771278bbc41e36cc3cae91") } > db.demo433.insertOne({"DueDate":new Date("2020-01-03")}); { "acknowledged" : true, "insertedId" : ObjectId("5e771290bbc41e36cc3cae92") }
แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo433.find();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : ObjectId("5e771278bbc41e36cc3cae91"), "DueDate" : ISODate("2019-11-23T00:00:00Z") } { "_id" : ObjectId("5e771290bbc41e36cc3cae92"), "DueDate" : ISODate("2020-01-03T00:00:00Z") }
ต่อไปนี้เป็นแบบสอบถามเพื่อกรองแบบสอบถามในรูปแบบวันที่เฉพาะใน MongoDB -
> db.demo433.aggregate([ ... { $addFields: {stringDate: { $dateToString: { format: "%Y-%m-%d", date: "$DueDate" } } } }, ... { $match: {"stringDate":"2020-01-03"}}, ... { $project:{"stringDate":0}} ... ])
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : ObjectId("5e771290bbc41e36cc3cae92"), "DueDate" : ISODate("2020-01-03T00:00:00Z") }