Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MongoDB

Tìm record từ ngày cụ thể trở đi trong MongoDB

Để 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
$gtLớn hơn (sau ngày)
$gteLớn hơn hoặc bằng (từ ngày đó)
$ltNhỏ hơn (trước ngày)
$lteNhỏ 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.