banner

Blog

Jun 01, 2023

Comment utiliser le pipeline d'agrégation dans MongoDB

Si MapReduce est votre référence, le moment est peut-être venu de passer au pipeline d'agrégation de MongoDB pour gérer des opérations complexes.

Le pipeline d'agrégation est le moyen recommandé pour exécuter des requêtes complexes dans MongoDB. Si vous utilisez MapReduce de MongoDB, vous feriez mieux de passer au pipeline d'agrégation pour des calculs plus efficaces.

Le pipeline d'agrégation est un processus en plusieurs étapes permettant d'exécuter des requêtes avancées dans MongoDB. Il traite les données à travers différentes étapes appelées pipeline. Vous pouvez utiliser les résultats générés à partir d'un niveau comme modèle d'opération dans un autre.

Par exemple, vous pouvez transmettre le résultat d'une opération de correspondance à une autre étape pour le trier dans cet ordre jusqu'à ce que vous obteniez le résultat souhaité.

Chaque étape d'un pipeline d'agrégation comporte un opérateur MongoDB et génère un ou plusieurs documents transformés. En fonction de votre requête, un niveau peut apparaître plusieurs fois dans le pipeline. Par exemple, vous devrez peut-être utiliser lecompte $ou$trierl’opérateur effectue plusieurs étapes dans le pipeline d’agrégation.

Le pipeline d'agrégation transmet les données à travers plusieurs étapes en une seule requête. Il y a plusieurs étapes et vous pouvez retrouver leurs détails dans la documentation MongoDB.

Définissons ci-dessous quelques-uns des plus couramment utilisés.

Cette étape vous aide à définir des conditions de filtrage spécifiques avant de démarrer les autres étapes d'agrégation. Vous pouvez l'utiliser pour sélectionner les données correspondantes que vous souhaitez inclure dans le pipeline d'agrégation.

L'étape de groupe sépare les données en différents groupes en fonction de critères spécifiques à l'aide de paires clé-valeur. Chaque groupe représente une clé dans le document de sortie.

Par exemple, considérons ce qui suitventesexemples de données :

À l'aide du pipeline d'agrégation, vous pouvez calculer le nombre total de ventes et les meilleures ventes pour chaque section de produit :

Le_id : $Section pair regroupe le document de sortie en fonction des sections. En précisant letop_sales_countetmeilleures ventes champs, MongoDB crée de nouvelles clés basées sur l'opération définie par l'agrégateur ; cela peut êtresomme $,$min,$max, ou$moy..

Vous pouvez utiliser le$ sauter étape pour omettre un nombre spécifié de documents dans la sortie. Cela vient généralement après la phase de groupes. Par exemple, si vous attendez deux documents de sortie mais en ignorez un, l'agrégation ne produira que le deuxième document.

Pour ajouter une étape sautée, insérez le$ sauteropération dans le pipeline d’agrégation :

L'étape de tri vous permet de classer les données par ordre décroissant ou croissant. Par exemple, nous pouvons trier davantage les données de l'exemple de requête précédent par ordre décroissant pour déterminer quelle section a les ventes les plus élevées.

Ajouter le$trieropérateur à la requête précédente :

L'opération de limitation permet de réduire le nombre de documents de sortie que vous souhaitez que le pipeline d'agrégation affiche. Par exemple, utilisez le$limiteopérateur pour obtenir la section avec les ventes les plus élevées renvoyée par l'étape précédente :

Ce qui précède renvoie uniquement le premier document ; il s'agit de la section avec les ventes les plus élevées, telle qu'elle apparaît en haut de la sortie triée.

Le$projet stage vous permet de façonner le document de sortie à votre guise. En utilisant le$projetopérateur, vous pouvez spécifier le champ à inclure dans la sortie et personnaliser son nom de clé.

Par exemple, un exemple de sortie sans le$projetla scène ressemble à ceci :

Voyons à quoi ça ressemble avec le$projet scène. Pour ajouter le$projetau pipeline :

Puisque nous avons précédemment regroupé les données en fonction des sections de produits, ce qui précède inclut chaque section de produit dans le document de sortie. Il garantit également que le décompte des ventes agrégées et les principales ventes figurent dans la sortie, commeTotalVenduet

PARTAGER