Để bỏ qua (skip) các giá trị trong MongoDB, sử dụng skip() kết hợp limit(). Để lấy 5 giá trị mỗi trang, dùng limit(5).
Tạo collection 8 document
> db.demo633.insertOne({"Value":10});
> db.demo633.insertOne({"Value":20});
> db.demo633.insertOne({"Value":30});
> db.demo633.insertOne({"Value":40});
> db.demo633.insertOne({"Value":50});
> db.demo633.insertOne({"Value":60});
> db.demo633.insertOne({"Value":70});
> db.demo633.insertOne({"Value":80});
Hiển thị tất cả
> db.demo633.find();
Kết quả (theo thứ tự insert):
Value: 10, 20, 30, 40, 50, 60, 70, 80
Phân trang: Lấy trang 2 (bỏ 5, lấy 5)
> var dividePage = 2; > db.demo633.find().skip((dividePage-1)*5).limit(5);
Kết quả (trang 2 - 3 document cuối):
{
"_id" : ObjectId("5e9c0bf36c954c74be91e6c6"), "Value" : 60
}
{
"_id" : ObjectId("5e9c0bf86c954c74be91e6c7"), "Value" : 70
}
{
"_id" : ObjectId("5e9c0bfa6c954c74be91e6c8"), "Value" : 80
}
Công thức phân trang:
skip((pageNumber - 1) * pageSize).limit(pageSize)
- Trang 1:
skip(0).limit(5)→ Value 10-50 - Trang 2:
skip(5).limit(5)→ Value 60-80 - Trang 3:
skip(10).limit(5)→ rỗng
Lưu ý hiệu năng: skip() chậm trên collection lớn vì phải duyệt qua các document bị bỏ qua. Với dữ liệu lớn, nên dùng cursor-based pagination (lọc theo _id hoặc timestamp của document cuối trang trước).