Chương này giới thiệu cách sắp xếp kết quả truy vấn trong MongoDB, tương tự như việc sử dụng mệnh đề ORDER BY trong MySQL. Phân trang trong MongoDB được thực hiện thông qua hàm sort của con trỏ Cursor.

Chuẩn bị dữ liệu thử nghiệm

Chèn một số bản ghi vào bộ sưu tập nhà hàng

db.restaurants.insertMany( [
   { "_id" : 1, "name" : "Quán Central Park", "borough" : "Manhattan"},
   { "_id" : 2, "name" : "Quán Bar and Grill Rock A Feller", "borough" : "Queens"},
   { "_id" : 3, "name" : "Quán Empire State Pub", "borough" : "Brooklyn"},
   { "_id" : 4, "name" : "Quán Stan's Pizzaria", "borough" : "Manhattan"},
   { "_id" : 5, "name" : "Quán Jane's Deli", "borough" : "Brooklyn"},
] );

Sắp xếp Kết Quả

db.restaurants.find({}).sort({_id:1})

Giải thích:

  • Sử dụng hàm sort để thiết lập trường sắp xếp.
  • Truy vấn tất cả dữ liệu và sắp xếp theo _id theo thứ tự tăng dần.

Định dạng của các tham số hàm sort:

<trường>: 1 hoặc -1

Giải thích:

  • 1 đại diện cho thứ tự tăng dần.
  • -1 đại diện cho thứ tự giảm dần.

Kết hợp với Phân Trang

db.restaurants.find({}).limit(2).skip(2).sort({_id:-1})

Giải thích:

  • Truy vấn tất cả dữ liệu, trả về tối đa 2 bản ghi, bỏ qua 2 bản ghi và sắp xếp theo _id theo thứ tự giảm dần.