MongoDB Sort : définir l’ordre d’une sortie de données

MongoDB Sort vous permet de trier des documents en fonction de critères spécifiques. Le résultat s’affiche dans l’ordre croissant ou décroissant.

MongoDB Sort, c’est quoi ?

Le système de gestion de base de données MongoDB permet de stocker ses données sous forme de documents dans des bases de données à créer avec la commande MongoDB Create Database. Pour une meilleure vue d’ensemble et un ordre logique, les documents sont regroupés et indexés dans des collections. L’objectif de ce système n’est pas seulement de stocker de données, mais aussi de les rendre à tout moment disponibles. La méthode MongoDB Sort permet d’optimiser la sortie dans la base de données orientée documents. Celle-ci adapte le classement de la sortie. Il est ainsi possible d’utiliser des listes et des requêtes encore plus rapidement et plus efficacement.

Conseil

Retrouvez les principales commandes du système de gestion dans notre aperçu des commandes MongoDB.

MongoDB Sort : syntaxe et fonctionnement

Avec MongoDB Find, MongoDB Sort est une méthode fréquemment utilisée lors du travail avec les bases de données. Il est aussi possible de combiner les deux. Voici comment se présente la syntaxe de base :

db.collection_name.find().sort({field_name: sort_order})

En plus de la commande MongoDB Sort, qui doit toujours inclure le nom de la collection, il y a encore un autre paramètre. Celui-ci est un document qui va déterminer le critère de tri des documents par le système. Vous pouvez définir le sens du tri en adaptant le paramètre sort_order : la valeur 1 signifie tri croissant, -1 tri décroissant. Si cette valeur n’est pas définie, MongoDB Sort affichera par défaut les documents dans l’ordre croissant.

Exemples pour MongoDB Sort

Pour mieux illustrer MongoDB Sort et ses différentes possibilités, utilisons quelques exemples simples. Imaginons une liste de clients qui, pour plus de clarté, comporterait trois entrées et contiendrait des informations sur le nom du client et le nombre de commandes. Voici à quoi ressemblerait cette liste sans tri :

>db.listeclients.find()
{ _id : ObjectID ( "409f288c184f9132cd772c1" ), "nom" : "Martin", "commandes" : 2 },
{ _id : ObjectID ( "409f288c184f9132cd772c2" ), "nom" : "Richard", "commandes" : 4 },
{ _id : ObjectID ( "409f288c184f9132cd772c3" ), "nom" : "Picard", "commandes" : 1 }
>

Trier par nom

Pour classer la liste des clients par ordre alphabétique, utilisez MongoDB Sort. Voici à quoi cela ressemblerait dans notre exemple :

>db.listeclients.find().sort({nom : 1})
{ _id : ObjectID ( "409f288c184f9132cd772c1" ), "nom" : "Martin", "commandes" : 2 },
{ _id : ObjectID ( "409f288c184f9132cd772c3" ), "nom" : "Picard", "commandes" : 1 },
{ _id : ObjectID ( "409f288c184f9132cd772c2" ), "nom" : "Richard", "commandes" : 4 }
>

Pour classer les noms par ordre décroissant, utilisez MongoDB Sort comme suit :

>db.kundenliste.find().sort({nom : -1})
{ _id : ObjectID ( "409f288c184f9132cd772c2" ), "nom" : "Richard", "commandes" : 4 },
{ _id : ObjectID ( "409f288c184f9132cd772c3" ), "nom" : "Picard", "commandes" : 1 },
{ _id : ObjectID ( "409f288c184f9132cd772c1" ), "nom" : "Martin", "commandes" : 2 }
>

Classer en fonction des commandes

Si vous souhaitez classer vos clients selon leur fréquence de commande en commençant par celui qui commande le plus, la syntaxe de MongoDB Sort sera la suivante :

>db.kundenliste.find().sort({commandes : -1})
{ _id : ObjectID ( "409f288c184f9132cd772c2" ), "nom" : "Richard", "commandes" : 4 }
{ _id : ObjectID ( "409f288c184f9132cd772c1" ), "nom" : "Martin", "commandes" : 2 },
{ _id : ObjectID ( "409f288c184f9132cd772c3" ), "nom" : "Picard", "commandes" : 1 },
>