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

จะรับ N บันทึกล่าสุดใน MongoDB ได้อย่างไร


หากต้องการรับ N ระเบียนสุดท้ายใน MongoDB คุณต้องใช้ limit() ไวยากรณ์มีดังนี้:

db.yourCollectionName.find().sort({$natural:-1}).limit(yourValue);

เพื่อให้เข้าใจไวยากรณ์ข้างต้น ให้เราสร้างคอลเลกชันพร้อมเอกสาร แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้:

> db.getLastNRecordsDemo.insertOne({"EmployeeName":"Maxwell"});{ "acknowledged" :true, "insertedId" :ObjectId("5c6ecf3d6fd07954a4890689")}> db.getLastNRecordsDemo.insertNameOne"({"Employee.insertNameOne" :"Carol"});{ "acknowledged" :true, "insertedId" :ObjectId("5c6ecf496fd07954a489068a")}> db.getLastNRecordsDemo.insertOne({"EmployeeName":"Bob"});{"acknowledged" :true, "insertedId" :ObjectId("5c6ecf4e6fd07954a489068b")}> db.getLastNRecordsDemo.insertOne({"EmployeeName="Sam"});{ "acknowledged" :true, "insertedId" :ObjectId("fd607cf546" getLastNRecordsDemo.insertOne({"EmployeeName":"Robert"});{ "acknowledged" :true, "insertedId" :ObjectId("5c6ecf596fd07954a489068d")}> db.getLastNRecordsDemo.insertOne({"EmployeeName}="Mike";{ "รับทราบ" :จริง "insertedId" :ObjectId("5c6ecf606fd07954a489068e")}> db.getLastNRecordsDemo.insertOne({"EmployeeName":"Chris"});{ "acknowledged" :จริง "insertedObjectId" :; "5c6ecf686fd07954a489068f")}> db.g etLastNRecordsDemo.insertOne({"EmployeeName":"James"});{ "acknowledged" :true, "insertedId" :ObjectId("5c6ecf6f6fd07954a4890690")}> db.getLastNRecordsDemo.insertOne({"Employee}Name":"Jace;{ "รับทราบ" :จริง "insertedId" :ObjectId("5c6ecf756fd07954a4890691")}> db.getLastNRecordsDemo.insertOne({"EmployeeName":"Ramit"});{ "acknowledged" :จริง "insertedObjectId" :"5c6ecf7d6fd07954a4890692")}> db.getLastNRecordsDemo.insertOne({"EmployeeName":"David"});{ "รับทราบ" :จริง "insertedId" :ObjectId("5c6ecf8d6fd07954apre4890>693")}

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() แบบสอบถามมีดังนี้:

> db.getLastNRecordsDemo.find().pretty();

ต่อไปนี้เป็นผลลัพธ์:

{ "_id" :ObjectId("5c6ecf3d6fd07954a4890689"), "EmployeeName" :"Maxwell" }{ "_id" :ObjectId("5c6ecf496fd07954a489068a"), "EmployeeName" :"Carol" :}{ "_Id" "5c6ecf4e6fd07954a489068b"), "EmployeeName" :"Bob" }{ "_id" :ObjectId("5c6ecf546fd07954a489068c"), "EmployeeName" :"Sam" }{ "_id" :ObjectId("5d9007ecf596") Robert" }{ "_id" :ObjectId("5c6ecf606fd07954a489068e"), "EmployeeName" :"Mike" }{ "_id" :ObjectId("5c6ecf686fd07954a489068f"), "EmployeeName" :"Chris" }{ "_Id":"5c6ecf6f6fd07954a4890690"), "EmployeeName" :"James" }{ "_id" :ObjectId("5c6ecf756fd07954a4890691"), "EmployeeName" :"Jace" }{ "_id" :ObjectId("5c6decf692"48,6da Ramit" }{ "_id" :ObjectId("5c6ecf8d6fd07954a4890693"), "EmployeeName" :"David" }

นี่คือแบบสอบถามเพื่อรับ N ระเบียนสุดท้ายจากคอลเลกชันด้วยความช่วยเหลือของ $natural และ limit():

> db.getLastNRecordsDemo.find().sort({$natural:-1}).limit(7);

ต่อไปนี้เป็นผลลัพธ์:

{ "_id" :ObjectId("5c6ecf8d6fd07954a4890693"), "EmployeeName" :"David" }{ "_id" :ObjectId("5c6ecf7d6fd07954a4890692"), "EmployeeName" :"Ramit" }{ _Id "5c6ecf756fd07954a4890691"), "EmployeeName" :"Jace" }{ "_id" :ObjectId("5c6ecf6f6fd07954a4890690"), "EmployeeName" :"James" }{ "_id" :ObjectId("5deeNameecf686f" Chris" }{ "_id" :ObjectId("5c6ecf606fd07954a489068e"), "EmployeeName" :"Mike" }{ "_id" :ObjectId("5c6ecf596fd07954a489068d"), "EmployeeName" :"Robert" }