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

ทำ Pagination ใน MongoDB ด้วย skip และ limit

ใช้ skip() และ limit() สำหรับ Pagination

รูปแบบมาตรฐาน: find().skip((page-1)*pageSize).limit(pageSize)

ตัวอย่าง

สร้างคอลเลกชัน paginationDemo 5 รายการ:

> db.paginationDemo.insertOne({"CustomerName":"Chris","CustomerAge":23});
> db.paginationDemo.insertOne({"CustomerName":"Robert","CustomerAge":26});
> db.paginationDemo.insertOne({"CustomerName":"David","CustomerAge":24});
> db.paginationDemo.insertOne({"CustomerName":"Carol","CustomerAge":28});
> db.paginationDemo.insertOne({"CustomerName":"Bob","CustomerAge":29});

หน้าแรก (Page 1) - ข้าม 0 แสดง 3

> db.paginationDemo.find().skip(0).limit(3);

ผลลัพธ์:

{ "_id" : ObjectId("..."), "CustomerName" : "Chris", "CustomerAge" : 23 }
{ "_id" : ObjectId("..."), "CustomerName" : "Robert", "CustomerAge" : 26 }
{ "_id" : ObjectId("..."), "CustomerName" : "David", "CustomerAge" : 24 }

หน้าที่ 2 - ข้าม 3 แสดง 3

> db.paginationDemo.find().skip(3).limit(3);

ผลลัพธ์: Carol, Bob

ข้อควรระวัง

  • skip() ทำงานช้าเมื่อข้ามจำนวนมาก (ต้องสแกนผ่าน) เหมาะกับข้อมูลไม่ใหญ่
  • ข้อมูลใหญ่ควรใช้ Range-based Pagination (ใช้ _id หรือ timestamp เป็น cursor)
  • ควรมี sort() เพื่อให้ลำดับคงที่