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

Tìm đối tượng tạo trong tuần trước trong MongoDB

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.