บทนี้จะแนะนำวิธีการเรียงลำดับผลลัพธ์คิวรีใน MongoDB ทำคล้ายกับการใช้คำสั่ง ORDER BY ของ MySQL การแบ่งหน้าใน MongoDB นั้นสามารถทำได้ผ่านฟังก์ชัน sort ของ Cursor cursor

เตรียมข้อมูลทดสอบ

แทรกบางบรรทัดลงในคอลเล็กชันร้านอาหาร

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

เรียงลำดับผลลัพธ์

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

คำอธิบาย:

  • ใช้ฟังก์ชัน sort เพื่อกำหนดฟิลด์ที่จะเรียงลำดับ
  • คิวรีข้อมูลทั้งหมดและเรียงลำดับตาม _id ตามลำดับเพิ่มขึ้น

รูปแบบของพารามิเตอร์ของฟังก์ชันเรียงลำดับ:

<field>: 1 หรือ -1

คำอธิบาย:

  • 1 แทนการเรียงลำดับตามลำดับเพิ่มขึ้น
  • -1 แทนการเรียงลำดับตามลำดับลดลง

ผสมกับการแบ่งหน้า

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

คำอธิบาย:

  • คิวรีข้อมูลทั้งหมด คืนค่ามากสุด 2 รายการ ข้าม 2 รายการ และเรียงลำดับตาม _id ลดลง