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

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 col­lec­tions. L’objectif de ce système n’est pas seulement de stocker de données, mais aussi de les rendre à tout moment dis­po­nibles. La méthode MongoDB Sort permet d’optimiser la sortie dans la base de données orientée documents. Celle-ci adapte le clas­se­ment de la sortie. Il est ainsi possible d’utiliser des listes et des requêtes encore plus ra­pi­de­ment et plus ef­fi­ca­ce­ment.

Conseil

Retrouvez les prin­ci­pales commandes du système de gestion dans notre aperçu des commandes MongoDB.

MongoDB Sort : syntaxe et fonc­tion­ne­ment

Avec MongoDB Find, MongoDB Sort est une méthode fré­quem­ment 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 col­lec­tion, il y a encore un autre paramètre. Celui-ci est un document qui va dé­ter­mi­ner 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é­crois­sant. 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 dif­fé­rentes pos­si­bi­li­tés, utilisons quelques exemples simples. Imaginons une liste de clients qui, pour plus de clarté, com­por­te­rait trois entrées et con­tien­drait des in­for­ma­tions sur le nom du client et le nombre de commandes. Voici à quoi res­sem­ble­rait 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 al­pha­bé­tique, utilisez MongoDB Sort. Voici à quoi cela res­sem­ble­rait 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é­crois­sant, 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 com­men­ç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 },
>
Aller au menu principal