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

วิธีหา Document ที่มี _id สูงสุดใน MongoDB

หา Document ที่มี _id มากที่สุด (ล่าสุด)

ใช้ sort({_id: -1}) เรียงจากมากไปน้อย แล้ว limit(1) เอาแค่ตัวแรก

db.yourCollectionName.find().sort({_id:-1}).limit(1).pretty()

สร้างข้อมูลตัวอย่าง

> db.getElementWithMaxIdDemo.insertOne({"Name":"John","Age":21});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8bbce480f10143d8431e1c") }
> db.getElementWithMaxIdDemo.insertOne({"Name":"Larry","Age":24});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8bbcec80f10143d8431e1d") }
> db.getElementWithMaxIdDemo.insertOne({"Name":"David","Age":23});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8bbcf580f10143d8431e1e") }
> db.getElementWithMaxIdDemo.insertOne({"Name":"Chris","Age":20});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8bbcfe80f10143d8431e1f") }
> db.getElementWithMaxIdDemo.insertOne({"Name":"Robert","Age":25});
{ "acknowledged" : true, "insertedId" : ObjectId("5c8bbd0880f10143d8431e20") }

Query หา Document _id สูงสุด

> db.getElementWithMaxIdDemo.find().sort({_id:-1}).limit(1).pretty()
{ "_id" : ObjectId("5c8bbd0880f10143d8431e20"), "Name" : "Robert", "Age" : 25 }

Document ที่ Insert ล่าสุดจะมี _id สูงสุด (ObjectId ประกอบด้วย Timestamp)