To rozdział wprowadza, jak sortować wyniki zapytań w MongoDB, podobnie do używania klauzuli ORDER BY w MySQL. Paginacja w MongoDB jest osiągana za pomocą funkcji sort w kursorze Cursor.

Przygotowanie danych testowych

Wstaw kilka rekordów do kolekcji restauracji:

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"},
] );

Sortowanie wyników

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

Wyjaśnienie:

  • Użyj funkcji sort do ustawienia pola sortowania.
  • Zapytaj wszystkie dane i posortuj według _id rosnąco.

Format parametrów funkcji sort:

<pole>: 1 lub -1

Wyjaśnienie:

  • 1 oznacza porządek rosnący.
  • -1 oznacza porządek malejący.

Połączenie z paginacją

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

Wyjaśnienie:

  • Zapytaj wszystkie dane, zwróć maksymalnie 2 rekordy, pomiń 2 rekordy i posortuj według _id malejąco.