Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

การค้นหาข้อมูลวันที่น้อยกว่าวันปัจจุบัน (NOW) ใน MongoDB

ใช้ตัวดำเนินการ $lte (less than or equal) ร่วมกับ new Date() เพื่อค้นหาเอกสารที่มีค่าวันที่น้อยกว่าหรือเท่ากับวันปัจจุบัน

ตัวอย่างข้อมูลทดสอบ

> db.dateTimeValueLessThanNowDemo.insertOne({"CustomerName": "Larry", "CustomerProductName": "Product-1", "ArrivalDate": new ISODate("2017-01-31")});
{ "acknowledged": true, "insertedId": ObjectId("5ca1e8ab66324ffac2a7dc59") }
> db.dateTimeValueLessThanNowDemo.insertOne({"CustomerName": "Mike", "CustomerProductName": "Product-2", "ArrivalDate": new ISODate("2019-04-01")});
{ "acknowledged": true, "insertedId": ObjectId("5ca1e8c166324ffac2a7dc5a") }
> db.dateTimeValueLessThanNowDemo.insertOne({"CustomerName": "Chris", "CustomerProductName": "Product-3", "ArrivalDate": new ISODate("2019-03-31")});
{ "acknowledged": true, "insertedId": ObjectId("5ca1e8d266324ffac2a7dc5b") }
> db.dateTimeValueLessThanNowDemo.insertOne({"CustomerName": "Robert", "CustomerProductName": "Product-4", "ArrivalDate": new ISODate("2019-04-02")});
{ "acknowledged": true, "insertedId": ObjectId("5ca1e8e766324ffac2a7dc5c") }

แสดงข้อมูลทั้งหมด

> db.dateTimeValueLessThanNowDemo.find().pretty();

ผลลัพธ์

{
  "_id": ObjectId("5ca1e8c166324ffac2a7dc5a"),
  "CustomerName": "Mike",
  "CustomerProductName": "Product-2",
  "ArrivalDate": ISODate("2019-04-01T00:00:00Z")
}
{
  "_id": ObjectId("5ca1e8d266324ffac2a7dc5b"),
  "CustomerName": "Chris",
  "CustomerProductName": "Product-3",
  "ArrivalDate": ISODate("2019-03-31T00:00:00Z")
}
{
  "_id": ObjectId("5ca1e8e766324ffac2a7dc5c"),
  "CustomerName": "Robert",
  "CustomerProductName": "Product-4",
  "ArrivalDate": ISODate("2019-04-02T00:00:00Z")
}

ค้นหาวันที่น้อยกว่าหรือเท่ากับวันปัจจุบัน

สมมติว่าวันปัจจุบันคือ 2019-04-02

> db.dateTimeValueLessThanNowDemo.find({ ArrivalDate: { $lte: new Date() } }).pretty();

ผลลัพธ์ (เฉพาะวันที่ ≤ 2019-04-02)

{
  "_id": ObjectId("5ca1e8ab66324ffac2a7dc59"),
  "CustomerName": "Larry",
  "CustomerProductName": "Product-1",
  "ArrivalDate": ISODate("2017-01-31T00:00:00Z")
}
{
  "_id": ObjectId("5ca1e8c166324ffac2a7dc5a"),
  "CustomerName": "Mike",
  "CustomerProductName": "Product-2",
  "ArrivalDate": ISODate("2019-04-01T00:00:00Z")
}
{
  "_id": ObjectId("5ca1e8d266324ffac2a7dc5b"),
  "CustomerName": "Chris",
  "CustomerProductName": "Product-3",
  "ArrivalDate": ISODate("2019-03-31T00:00:00Z")
}

หมายเหตุ: new Date() จะคืนค่าวันที่/เวลาปัจจุบันของเซิร์ฟเวอร์ MongoDB สามารถใช้ ISODate() แทนได้เช่นกัน