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

หาเอกสารล่าสุดจาก MongoDB find() Result Set

ใช้ 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 แยกต่างหาก