Giới thiệu chương

Chương này mô tả về truy vấn phân trang trong MongoDB, tương tự như việc sử dụng phân trang trong MYSQL. Truy vấn phân trang của MongoDB được thực hiện thông qua các hàm .limit.skip của Cursor.

Dữ liệu thử nghiệm

Thêm một số dữ liệu vào bộ sưu tập inventory

db.inventory.insertMany( [
  { item: "sổ tay", status: "A", size: { h: 14, w: 21, uom: "cm" }, instock: [ { warehouse: "A", qty: 5 } ] },
  { item: "quyển vở", status: "A",  size: { h: 8.5, w: 11, uom: "in" }, instock: [ { warehouse: "C", qty: 5 } ] },
  { item: "giấy", status: "D", size: { h: 8.5, w: 11, uom: "in" }, instock: [ { warehouse: "A", qty: 60 } ] },
  { item: "lịch kế hoạch", status: "D", size: { h: 22.85, w: 30, uom: "cm" }, instock: [ { warehouse: "A", qty: 40 } ] },
  { item: "bưu thiếp", status: "A", size: { h: 10, w: 15.25, uom: "cm" }, instock: [ { warehouse: "B", qty: 15 }, { warehouse: "C", qty: 35 } ] }
]);

Giới hạn dữ liệu trả về

db.inventory.find({}).limit(5)

Giải thích:

  • Sử dụng hàm limit để đặt số lượng tối đa dữ liệu trả về.

Phân trang

db.inventory.find({}).limit(5).skip(2)

Giải thích:

  • Bằng cách đặt skip để bỏ qua một số lượng dữ liệu và limit để giới hạn số lượng dữ liệu trả về.
  • limit tương tự như limit trong SQL, và skip tương tự như offset trong SQL.