ใช้โอเปอเรเตอร์ $lt (Less Than) กับวันที่
เพื่อหาเอกสารที่มีฟิลด์วันที่ (Date/ISODate) น้อยกว่าค่าที่กำหนด ใช้ $lt ในคิวรี
ตัวอย่างข้อมูล
> db.beforeSpecifyDateDemo.insertOne({"UserLoginDate": new ISODate('2016-03-21')});
> db.beforeSpecifyDateDemo.insertOne({"UserLoginDate": new ISODate('2016-05-11')});
> db.beforeSpecifyDateDemo.insertOne({"UserLoginDate": new ISODate('2017-01-31')});
> db.beforeSpecifyDateDemo.insertOne({"UserLoginDate": new ISODate('2018-05-15')});
> db.beforeSpecifyDateDemo.insertOne({"UserLoginDate": new ISODate('2019-04-01')});
คิวรี: หาเอกสารที่ UserLoginDate ก่อน 2017-01-31
> db.beforeSpecifyDateDemo.find({UserLoginDate: { "$lt": ISODate("2017-01-31") }});
ผลลัพธ์
{ "_id" : ObjectId("5cbd91e4de8cc557214c0e0d"), "UserLoginDate" : ISODate("2016-03-21T00:00:00Z") }
{ "_id" : ObjectId("5cbd91ecde8cc557214c0e0e"), "UserLoginDate" : ISODate("2016-05-11T00:00:00Z") }
โอเปอเรเตอร์เปรียบเทียบวันที่ที่นิยมใช้
| โอเปอเรเตอร์ | ความหมาย | ตัวอย่าง |
|---|---|---|
$lt | น้อยกว่า (ก่อนหน้า) | { date: { $lt: ISODate("2023-01-01") } } |
$lte | น้อยกว่าหรือเท่ากับ | { date: { $lte: ISODate("2023-01-01") } } |
$gt | มากกว่า (หลังจาก) | { date: { $gt: ISODate("2023-01-01") } } |
$gte | มากกว่าหรือเท่ากับ | { date: { $gte: ISODate("2023-01-01") } } |
เคล็ดลับ
- ใช้
ISODate()เพื่อสร้างวันที่มาตรฐาน UTC - สร้างดัชนี (Index) บนฟิลด์วันที่เพื่อประสิทธิภาพการคิวรี
- MongoDB เก็บวันที่เป็น UTC ตลอดเวลา