Computer >> Máy Tính >  >> Lập trình >> MongoDB

Làm cách nào để lọc truy vấn theo định dạng ngày cụ thể với MongoDB?

Để lọc truy vấn theo định dạng ngày cụ thể, hãy sử dụng $ dateToString. Hãy để chúng tôi tạo một bộ sưu tập với các tài liệu -

> 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")
}

Hiển thị tất cả các tài liệu từ một bộ sưu tập với sự trợ giúp của phương thức find () -

> db.demo433.find();

Điều này sẽ tạo ra kết quả sau -

{ "_id" : ObjectId("5e771278bbc41e36cc3cae91"), "DueDate" : ISODate("2019-11-23T00:00:00Z") }
{ "_id" : ObjectId("5e771290bbc41e36cc3cae92"), "DueDate" : ISODate("2020-01-03T00:00:00Z") }

Sau đây là truy vấn để lọc một truy vấn về định dạng ngày cụ thể trong MongoDB -

> db.demo433.aggregate([
... { $addFields: {stringDate: { $dateToString: { format: "%Y-%m-%d", date: "$DueDate" } } } },
... { $match: {"stringDate":"2020-01-03"}},
... { $project:{"stringDate":0}}
... ])

Điều này sẽ tạo ra kết quả sau -

{ "_id" : ObjectId("5e771290bbc41e36cc3cae92"), "DueDate" : ISODate("2020-01-03T00:00:00Z") }