- MongoDB là gì? Các khái niệm trong MongoDB
- Hướng dẫn cài đặt, cấu hình MongoDB trên Windows 10
- Cài đặt và sử dụng Robo 3T (RoboMongo) trên Windows
- Hướng dẫn cài đặt MongoDB trên Linux (Ubuntu 16.04)
- Hướng dẫn MongoDB – Tạo database trong MongoDB
- Hướng dẫn MongoDB – Xóa, DROP database trong MongoDB
- Tạo bảng, collections trong MongoDB (Tạo bằng dòng lệnh, Robo3t)
- Xóa bảng, collections trong MongoDB (Xóa bằng lệnh/ Robo3T)
- Insert document, bản ghi trong MongoDB (Insert bằng lệnh, Robo3T)
- Truy vấn dữ liệu/document, find(), Select, Where trong MongoDB
- Xóa document, row trong MongoDB (bằng dòng lệnh, Robo3T)
- Update document, dữ liệu trong MongoDB
- Projection trong MongoDB (SELECT field/column trong MongoDB)
- Sắp xếp trong MongoDB(orderBy, sorting() trong MongoDB)
- Ưu nhược điểm của MongoDB, khi nào nên dùng MongoDB
- Xóa cột, field, trường của collections trong MongoDB ($unset)
- Kiểm tra null, check tồn tại trong MongoDB với $exists
- Đổi tên field trong MongoDB với $rename
- Tạo user/roles, phân quyền người dùng trên MongoDB
- Các loại roles, vai trò, quyền trong MongoDB.
- Đăng nhập mongodb với username và password (database mongo)
- Tạo Replica Set trong MongoDB, Ví dụ Replica Set MongoDB
- Replication, Replica Set trong MongoDB là gì?
- Phân trang trong MongoDB (skip(), limit() paging trong MongoDB)
Phân trang trong MongoDB (skip(), limit() paging trong MongoDB)
Phân trang trong MongoDB
Để tìm kiếm, truy vấn dữ liệu trong MongoDB chúng ta có 2 method là:
find(query, projection):
trả về tất cả kết quả thỏa mãn với queryfindOne(query, projection):
trả về 1 kết quả đầu tiên thỏa mãn query
Để xác định số lượng kết quả trả về và số thứ tự kết quả được lấy ta sử dụng method limit()
và skip()
Ví dụ trong collection player mình có những document sau:
{'_id':'1', 'name':'neymar', 'country':'brazil', 'age':25}, {'_id':'2', 'name':'hazard', 'country':'belgium', 'age':25}, {'_id':'3', 'name':'mbappe', 'country':'france', 'age':18}, {'_id':'4', 'name':'modric', 'country':'croatia', 'age':30}, {'_id':'5', 'name':'ronaldo', 'country':'portugal', 'age':33}, {'_id':'6', 'name':'messi', 'country':'argentina', 'age':31}, {'_id':'7', 'name':'icardi', 'country':'argentina', 'age':25}, {'_id':'8', 'name':'griezmann', 'country':'france', 'age':28}
limit()
Method limit()
được dùng sau method find()
để xác định tối đa số kết quả trả về:
Ví dụ mình muốn lấy 2 document của collection player:
db.player.find().limit(2)
Nếu tham số trong method limit() lớn hơn số lượng kết quả trả về thì nó sẽ trả về tất cả các kết quả, ví dụ kết quả truy vấn có 8 document nhưng lại để là limit(10)
thì số lượng kết quả trả về sẽ là 8
Các kết quả được lấy theo thứ tự sort (mặc định sort theo _id)
skip()
Method skip() được dùng để xác định sẽ lấy document trong kết quả ở vị trí thứ bao nhiêu bằng cách bỏ qua các document trước đó.
Ví dụ mình muốn lấy 2 document của collection player từ vị trí thứ 3:
db.player.find().limit(2).skip(2)
Để phân trang trong MongoDB ta sẽ sử dụng kết hợp limit()
và skip()
, ví dụ mình chia kết quả thành các trang (page), mỗi trang có 5 kết quả.
Bây giờ muốn lấy kết quả trang thứ n (n bắt đầu từ 0) thì câu lệnh sẽ là:
db.player.find().limit(5).skip(5*n)
Ví dụ, với điều kiện như trên, lấy kết quả trong page 1:
Phân trang trong MongoDB (skip(), limit() paging trong MongoDB) stackjava.com
Okay, Done!
References:
https://docs.mongodb.com/manual/reference/method/db.collection.find/