Để tìm document có ngày lớn hơn hoặc bằng một ngày cụ thể, sử dụng toán tử $gte (greater than or equal) với ISODate.
Dữ liệu mẫu
> db.demo91.insertOne({"ArrivalDate":new ISODate("2020-01-10")});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2d49fd79799acab037af66") }
> db.demo91.insertOne({"ArrivalDate":new ISODate("2019-12-14")});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2d4a0679799acab037af67") }
Truy vấn $gte
> db.demo91.find({ArrivalDate: { $gte: ISODate('2020-01-10') } });
Kết quả
{ "_id" : ObjectId("5e2d49fd79799acab037af66"), "ArrivalDate" : ISODate("2020-01-10T00:00:00Z") }
Các toán tử so sánh ngày tháng:
| Toán tử | Ý nghĩa |
|---|---|
$gt | Lớn hơn (sau ngày) |
$gte | Lớn hơn hoặc bằng (từ ngày đó) |
$lt | Nhỏ hơn (trước ngày) |
$lte | Nhỏ hơn hoặc bằng (đến ngày đó) |
Mẹo: Kết hợp $gte và $lte để query khoảng thời gian: {date: {$gte: start, $lte: end}}. Luôn dùng ISODate() thay vì string để đảm bảo so sánh chính xác.