Ce chapitre présente comment trier les résultats de la requête dans MongoDB, similaire à l'utilisation de la clause ORDER BY de MySQL. La pagination dans MongoDB est réalisée grâce à la fonction sort du curseur Cursor.

Préparation des données de test

Insérez quelques enregistrements dans la collection des restaurants

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

Trier les résultats

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

Explication :

  • Utilisez la fonction sort pour définir le champ de tri.
  • Interrogez toutes les données et triez par _id dans l'ordre croissant.

Format des paramètres de la fonction de tri :

<champ>: 1 ou -1

Explication :

  • 1 représente l'ordre croissant.
  • -1 représente l'ordre décroissant.

Combinaison avec la pagination

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

Explication :

  • Interrogez toutes les données, retournez un maximum de 2 enregistrements, ignorez 2 enregistrements et triez par _id dans l'ordre décroissant.