MongoDB Trier les résultats de la requête

Mongodb Trier Les Resultats De La Requete



Presque tous les systèmes de base de données donnent la priorité au tri des données avant qu'elles ne soient récupérées, ce qui les distingue des autres méthodes de stockage de données. MongoDB a également différentes façons de déterminer comment trier les données. Généralement, nous utilisons la méthode sort() pour déterminer l'ordre dans lequel le document apparaît. L'ordre de la séquence est passé en paramètre à la méthode sort(). Le ou les champs qui composent la méthode sort() sont fréquemment suivis soit d'une valeur « 1 », soit d'un « -1 ». La méthode sort() rend une requête plus lisible, ce qui améliore la compréhension d'une collection spécifiée.

Comment MongoDB trie-t-il les résultats des requêtes ?

La méthode de tri prend le champ et sa valeur associée comme un seul paramètre. La méthode de tri accepte des paramètres au format JSON comme {Field : Value}. Les multiples champs et valeurs peuvent également être saisis dans la méthode sort() pour obtenir les documents triés de la collection. Considérez le document suivant dans lequel nous avons inséré de nombreux autres documents dans notre base de données. Le nom de cette base de données MongoDB est intitulé 'Employés'. La collection « Employés » contient toutes les informations des employés ci-dessous.

db.Employés.insertMany([
{
'nom': 'Robert',
'DDN': '14-05-1993',
'genre masculin',
'e-mail': ' [e-mail protégé] ',
'departement': 'Sécurité',
'salaire' : 5000
},
{
'nom': 'kyle',
'DDN': '31-05-1999',
'sexe': 'femme',
'e-mail': ' [e-mail protégé] ',
'département': 'informatique',
'salaire' : 6200
},
{
'nom': 'Matthieu',
'DDN': '26-04-1993',
'genre masculin',
'e-mail': ' [e-mail protégé] ',
'service': 'Comptes',
'salaire' : 3500
},
{
'nom': 'Kévin',
'DDN': '14-07-1991',
'genre masculin',
'e-mail': ' [e-mail protégé] ',
'service': 'Sécurité',
'salaire' : 4500
},

{
'nom': 'Julie',
'DDN': '09-12-2000',
'sexe': 'femme',
'e-mail': ' [e-mail protégé] ',
'département': 'informatique',
'salaire' : 2500
}
])

La collection « Employé » est insérée avec les documents fournis dont la confirmation est indiquée dans la sortie suivante. Nous allons utiliser ce document de collection pour montrer la fonctionnalité des résultats de la requête de tri.









Exemple n° 1 : Collection non triée MongoDB

Lorsque la requête de recherche est exécutée avec la méthode find(), elle donne toujours une collection non triée de documents. Cela peut être plus clair avec les résultats de la requête fournis ci-dessous.



>db.Employés.find({},{_id :0})

Ici, nous avons une requête de la collection 'Employee' avec la méthode find(). La méthode find() prend le paramètre vide avec le '_id:0'. Pour un résultat plus simple, l'ID du document est supprimé à l'aide de l'opérateur « _id:0 ». Par défaut, nous obtenons des collections non triées lorsque la requête est recherchée avec la méthode find(). La sortie récupérée ci-dessous est tous les documents non triés d'une manière que nous avons au moment de l'insertion.





Exemple # 2 : Trier les résultats de la requête MongoDB dans l'ordre croissant

La collection triée dans MongoDB est obtenue en utilisant la méthode sort() qui doit être placée après la méthode find(). La méthode sort() dans MongoDB prend le paramètre qui est inclus avec le nom du champ et l'ordre de tri du document. Nous devons entrer '1' comme paramètre dans le champ puisque nous allons récupérer les documents par ordre croissant dans cet exemple particulier. Les éléments suivants dans la requête de tri sont classés par ordre croissant.



>db.Employees.find().sort({name:1})

Ici, nous avons utilisé la méthode sort() après la requête de recherche find. La méthode sort() est utilisée pour trier le champ 'nom' dans l'ordre croissant car la valeur '1' est placée à côté du champ spécifié. Notez que si la méthode sort() n'est pas spécifiée avec une valeur paramétrique, la collection ne sera pas triée. La sortie de la méthode sort() sera obtenue dans l'ordre par défaut. Les résultats de la méthode sort() par champ de nom dans l'ordre croissant sont affichés dans le shell MongoDB suivant.

Exemple n° 3 : Trier les résultats de la requête MongoDB par ordre décroissant

Maintenant, nous montrons les résultats de la requête de tri de MongoDB par ordre décroissant. Ce type de requête est identique à l'exemple ci-dessus, mais avec une différence. Pour l'ordre décroissant, la méthode sort() prend la valeur '-1' contre le nom de la colonne. Les résultats de la requête de tri par ordre décroissant sont indiqués ci-dessous.

>db.Employés.find({},{'email':1,_id:0}).sort({'email':-1})

Ici, la requête de recherche commence par la méthode find() qui trouve le champ 'email' et renvoie uniquement les valeurs du champ 'email'. Ensuite, nous avons spécifié la méthode sort() qui est utilisée pour trier le champ 'email', et la valeur '-1' à côté indique que les résultats de tri obtenus seront dans l'ordre décroissant. Les résultats de la requête de tri par ordre décroissant sont récupérés après leur exécution dans le shell MongoDB.

Exemple # 4 : Trier les résultats de la requête MongoDB pour plusieurs champs

Nous pouvons trier les multiples champs dans MongoDB avec la méthode sort(). Les champs à trier doivent être déclarés dans la méthode sort(). Le tri est basé sur l'ordre de déclaration des champs et l'ordre de tri est examiné de gauche à droite. La requête de tri des champs multiples devrait ressembler à ceci :

>db.Employees.find({},{_id:0}).sort({'name':1,'salary':1})

Ici, la méthode sort() est passée avec les champs 'nom' et 'salaire' à trier. Le champ 'nom' de la collection 'Employé' est trié en premier car il s'agit du premier champ argument de la méthode sort(). Ensuite, la méthode sort() trie le second champ argument « salaire ». L'ordre des deux champs est '1', ce qui indique que le tri sera en ordre croissant. La sortie de plusieurs champs de requête de tri est générée dans l'ordre de tri spécifié ci-dessous.

Exemple # 5 : Trier les résultats de la requête MongoDB avec la méthode Limit

De plus, la méthode sort() peut également être combinée avec la méthode limit() qui donne le nombre limité de documents triés par cette requête de recherche. La méthode limit() nécessite un nombre entier comme paramètre, ce qui limite le nombre de documents à inclure dans le jeu de sortie. La requête de recherche est définie ci-dessous, qui trie d'abord le document, puis fournit les documents de limite spécifiés.

>db.Employees.find({},{_id:0}).sort({'department':1,'DOB':1}).limit(4).pretty()

Ici, nous avons la requête de recherche qui commence l'opération de tri pour la colonne 'department' puis pour la colonne 'DOB' dans l'ordre croissant en utilisant la méthode sort(). Une fois le tri effectué, nous avons placé la méthode limit() à côté pour récupérer le document limité. La méthode limit() reçoit une valeur numérique '4', ce qui signifie qu'elle n'affiche que quatre documents triés dans la sortie, comme indiqué dans l'écran suivant :

Exemple n° 6 : Trier les résultats de la requête MongoDB avec l'agrégation $sort

Dans tous les exemples ci-dessus, nous avons effectué le tri via la méthode sort() de MongoDB. Il existe une autre façon de trier dans MongoDB qui s'effectue via l'agrégation $sort. L'opérateur $sort trie tous les documents d'entrée qui renvoient ensuite les documents triés au pipeline. L'opérateur $sort est appliqué à la collection 'Employés' ci-dessous.

db.Employees.aggregate([ { $sort : { salaire : 1, _id: -1 } } ])

Ici, nous avons appelé la méthode d'agrégation à l'intérieur de laquelle nous pouvons utiliser l'opérateur '$sort'. Ensuite, nous avons l'expression de l'opérateur $sort qui trie la colonne 'salary' par ordre croissant et la colonne 'id' par ordre décroissant. L'agrégation $sort appliquée sur le champ génère les résultats suivants :

Exemple # 6 : Trier les résultats de la requête MongoDB avec la méthode Skip

La méthode sort() peut également être associée à la méthode skip(). L'ensemble de données résultant peut avoir un certain nombre de documents qui seront ignorés à l'aide de la méthode skip(). Comme la méthode limit(), la méthode skip() accepte également la valeur numérique qui indique le nombre de documents à ignorer. Nous avons combiné la méthode sort() avec la méthode skip() dans la requête de tri.

>db.Employees.find({},{_id:0}).sort({'salary':1}).skip(4).pretty()

Ici, nous avons utilisé la méthode skip() à côté de la méthode sort(). Lorsque la méthode sort() trie les documents, elle transmet la sortie du tri à la méthode sort(). Après cela, la méthode skip() a supprimé les quatre premiers documents triés de la collection.

Conclusion

L'article concerne les résultats de la requête de tri dans MongoDB. Nous avons utilisé à cet effet la méthode sort() qui organise les enregistrements dans une séquence spécifiée. Nous avons également utilisé la méthode sort() pour effectuer des tris multiples sur plusieurs champs. La méthode sort() est ensuite associée aux méthodes limit() et skip() pour les documents triés à l'aide de ces opérations. De plus, nous avons fourni l'agrégation $sort pour les résultats de la requête de tri dans MongoDB.