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

MongoDB: ค้นหาเอกสารล่าสุดในคอลเลกชันด้วย sort + limit


วิธีการ: เรียงตาม _id แบบ Descending แล้ว limit(1)

ฟิลด์ _id ของ MongoDB มี timestamp ติดอยู่ภายใน จึงสามารถใช้เรียงเพื่อหาเอกสารที่เพิ่มล่าสุดได้

สร้างคอลเลกชันตัวอย่าง

> db.demo141.insertOne({"Name":"Chris"});
{ "acknowledged": true, "insertedId": ObjectId("5e31c347fdf09dd6d08539ae") }
> db.demo141.insertOne({"Name":"David"});
{ "acknowledged": true, "insertedId": ObjectId("5e31c34bfdf09dd6d08539af") }
> db.demo141.insertOne({"Name":"Bob"});
{ "acknowledged": true, "insertedId": ObjectId("5e31c34ffdf09dd6d08539b0") }
> db.demo141.insertOne({"Name":"Mike"});
{ "acknowledged": true, "insertedId": ObjectId("5e31c352fdf09dd6d08539b1") }

แสดงข้อมูล

> db.demo141.find();
{ "_id": ObjectId("5e31c347fdf09dd6d08539ae"), "Name": "Chris" }
{ "_id": ObjectId("5e31c34bfdf09dd6d08539af"), "Name": "David" }
{ "_id": ObjectId("5e31c34ffdf09dd6d08539b0"), "Name": "Bob" }
{ "_id": ObjectId("5e31c352fdf09dd6d08539b1"), "Name": "Mike" }

คิวรีหาเอกสารล่าสุด

> db.demo141.find().sort({_id:-1}).limit(1);

ผลลัพธ์: Mike (เพิ่มล่าสุด)

{ "_id": ObjectId("5e31c352fdf09dd6d08539b1"), "Name": "Mike" }