Sử dụng Date() kết hợp toán tử $gte (greater than or equal). Giả sử thời điểm hiện tại:
> new Date();
ISODate("2019-05-14T08:32:42.773Z")
Tạo collection với ShippingDate
> db.findObectInLastWeekDemo.insertOne({"ShippingDate": new ISODate("2019-05-01")});
{ "acknowledged": true, "insertedId": ObjectId("5cda7dc4bf3115999ed511e0") }
> db.findObectInLastWeekDemo.insertOne({"ShippingDate": new ISODate("2019-05-02")});
{ "acknowledged": true, "insertedId": ObjectId("5cda7dc4bf3115999ed511e1") }
> db.findObectInLastWeekDemo.insertOne({"ShippingDate": new ISODate("2019-05-08")});
{ "acknowledged": true, "insertedId": ObjectId("5cda7dc4bf3115999ed511e2") }
> db.findObectInLastWeekDemo.insertOne({"ShippingDate": new ISODate("2019-05-07")});
{ "acknowledged": true, "insertedId": ObjectId("5cda7dc4bf3115999ed511e3") }
> db.findObectInLastWeekDemo.insertOne({"ShippingDate": new ISODate("2019-05-09")});
{ "acknowledged": true, "insertedId": ObjectId("5cda7dc4bf3115999ed511e4") }
> db.findObectInLastWeekDemo.insertOne({"ShippingDate": new ISODate("2019-04-26")});
{ "acknowledged": true, "insertedId": ObjectId("5cda7dc4bf3115999ed511e5") }
Hiển thị tất cả
> db.findObectInLastWeekDemo.find().pretty();
Truy vấn tài liệu 7 ngày gần nhất
> db.findObectInLastWeekDemo.find({
ShippingDate: { $gte: new Date(new Date() - 7 * 60 * 60 * 24 * 1000) }
});
Kết quả (chỉ 2 tài liệu ngày 08 và 09/05 trong vòng 7 ngày tính từ 14/05):
{
"_id": ObjectId("5cda7dc4bf3115999ed511e2"),
"ShippingDate": ISODate("2019-05-08T00:00:00Z")
}
{
"_id": ObjectId("5cda7dc4bf3115999ed511e4"),
"ShippingDate": ISODate("2019-05-09T00:00:00Z")
}
Giải thích: 7 * 60 * 60 * 24 * 1000 = 7 ngày tính bằng milliseconds. new Date() - ... tạo thời điểm 7 ngày trước.