ใช้ sort({_id: -1}) limit(1)
ObjectId มี timestamp ตรง 4 ไบต์แรก เรียง _id ดังกล่าวเทียบเท่ากับเรียงตามเวลาสร้าง
ไวยากรณ์
db.yourCollectionName.find().sort({_id: -1}).limit(1).pretty();
ตัวอย่าง
สร้างคอลเลกชัน identifyLastDocuementDemo เพิ่มข้อมูล 6 รายการ:
> db.identifyLastDocuementDemo.insertOne({"UserName":"Larry","UserAge":24,"UserCountryName":"US"});
> db.identifyLastDocuementDemo.insertOne({"UserName":"Chris","UserAge":21,"UserCountryName":"UK"});
> db.identifyLastDocuementDemo.insertOne({"UserName":"David","UserAge":25,"UserCountryName":"AUS"});
> db.identifyLastDocuementDemo.insertOne({"UserName":"Sam","UserAge":26,"UserCountryName":"US"});
> db.identifyLastDocuementDemo.insertOne({"UserName":"Mike","UserAge":27,"UserCountryName":"AUS"});
> db.identifyLastDocuementDemo.insertOne({"UserName":"Carol","UserAge":28,"UserCountryName":"UK"});
ค้นหาเอกสารล่าสุด
> db.identifyLastDocuementDemo.find().sort({_id: -1}).limit(1).pretty();
ผลลัพธ์:
{
"_id" : ObjectId("5c94a33c4cf1f7a64fa4df5c"),
"UserName" : "Carol",
"UserAge" : 28,
"UserCountryName" : "UK"
}
วิธีนี้เร็วและไม่ต้องมีฟิลด์ timestamp แยกต่างหาก