Để thực hiện truy vấn dựa trên ngày tháng trong MongoDB, bạn sử dụng các toán tử so sánh như $gte, $lte, $gt, $lt kết hợp với ISODate.
Tạo collection và dữ liệu mẫu
> db.returnQueryFromDate.insertOne({"PassengerName":"John","PassengerAge":23,"PassengerArrivalTime":new ISODate("2018-03-10 14:45:56")});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8a57be9064dcd4a68b70e4") }
> db.returnQueryFromDate.insertOne({"PassengerName":"Larry","PassengerAge":21,"PassengerArrivalTime":new ISODate("2018-05-19 11:10:23")});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8a57bf9064dcd4a68b70e5") }
> db.returnQueryFromDate.insertOne({"PassengerName":"Mike","PassengerAge":24,"PassengerArrivalTime":new ISODate("2018-08-25 16:40:12")});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8a57bf9064dcd4a68b70e6") }
> db.returnQueryFromDate.insertOne({"PassengerName":"Carol","PassengerAge":26,"PassengerArrivalTime":new ISODate("2019-01-29 09:45:10")});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8a57bf9064dcd4a68b70e7") }
Xem tất cả documents
> db.returnQueryFromDate.find().pretty();
{
"_id" : ObjectId("5c8a57be9064dcd4a68b70e4"),
"PassengerName" : "John",
"PassengerAge" : 23,
"PassengerArrivalTime" : ISODate("2018-03-10T14:45:56Z")
}
{
"_id" : ObjectId("5c8a57bf9064dcd4a68b70e5"),
"PassengerName" : "Larry",
"PassengerAge" : 21,
"PassengerArrivalTime" : ISODate("2018-05-19T11:10:23Z")
}
{
"_id" : ObjectId("5c8a57bf9064dcd4a68b70e6"),
"PassengerName" : "Mike",
"PassengerAge" : 24,
"PassengerArrivalTime" : ISODate("2018-08-25T16:40:12Z")
}
{
"_id" : ObjectId("5c8a57bf9064dcd4a68b70e7"),
"PassengerName" : "Carol",
"PassengerAge" : 26,
"PassengerArrivalTime" : ISODate("2019-01-29T09:45:10Z")
}
Truy vấn các record có ngày lớn hơn một giá trị cụ thể
Tìm các passenger có PassengerArrivalTime lớn hơn hoặc bằng 2018-05-19T11:10:23Z:
> db.returnQueryFromDate.find({"PassengerArrivalTime" : { $gte : new ISODate("2018-05-19T11:10:23Z") }}).pretty();
{
"_id" : ObjectId("5c8a57bf9064dcd4a68b70e5"),
"PassengerName" : "Larry",
"PassengerAge" : 21,
"PassengerArrivalTime" : ISODate("2018-05-19T11:10:23Z")
}
{
"_id" : ObjectId("5c8a57bf9064dcd4a68b70e6"),
"PassengerName" : "Mike",
"PassengerAge" : 24,
"PassengerArrivalTime" : ISODate("2018-08-25T16:40:12Z")
}
{
"_id" : ObjectId("5c8a57bf9064dcd4a68b70e7"),
"PassengerName" : "Carol",
"PassengerAge" : 26,
"PassengerArrivalTime" : ISODate("2019-01-29T09:45:10Z")
}
Các mẫu truy vấn ngày tháng thường dùng
| Mục đích | Cú pháp |
|---|---|
| Ngày trong khoảng | {$gte: ISODate("start"), $lte: ISODate("end")} |
| Ngày trước một thời điểm | {$lt: ISODate("2023-01-01")} |
| Ngày sau một thời điểm | {$gt: ISODate("2023-01-01")} |
| Ngày chính xác | {$eq: ISODate("2023-01-01")} hoặc trực tiếp ISODate |