L'opération d'agrégation dans MongoDB est un moyen efficace de traiter les données et de renvoyer les résultats calculés. Les opérations d'agrégation regroupent les valeurs de plusieurs documents et peuvent effectuer diverses opérations sur ces données groupées pour renvoyer un résultat unique. MongoDB propose trois manières d'effectuer des agrégations : le pipeline d'agrégation, la méthode map-reduce et les opérations d'agrégation à objectif unique.
Pipeline d'agrégation
Les pipelines d'agrégation dans MongoDB utilisent des opérateurs de pipeline pour traiter et transformer vos documents en étapes groupées. Chaque document passe par ces étapes du pipeline dans l'ordre. Le pipeline d'agrégation est un framework puissant qui offre des fonctionnalités similaires aux requêtes SQL GROUP BY.
Les opérateurs de pipeline incluent $match, $group, $sort, $project, $limit et bien d'autres. $match filtre les documents, $group regroupe les valeurs de plusieurs documents, $sort trie les documents, $project remanie chaque document, $limit limite le nombre de documents pour passer à l'étape suivante.
Opérations de réduction de carte
La méthode map-reduce est un moyen flexible d'effectuer des agrégations, en particulier lorsqu'il s'agit de gros volumes de données. Map-Reduce est un modèle de traitement de données permettant de condenser de grands volumes de données en résultats agrégés utiles. Dans MongoDB, map-reduce opère sur une collection de documents et renvoie un résultat de collection.
Le processus de réduction de mappage dans MongoDB mappe d'abord les données pour générer des paires clé-valeur, puis réduit toutes les paires avec la même clé. Le mappage et la réduction sont des opérations JavaScript personnalisées que MongoDB effectue sur la collection.
Opérations d'agrégation à usage unique
MongoDB propose également certaines opérations d'agrégation à objectif unique, telles que compter le nombre de documents, calculer la somme des valeurs et rechercher les valeurs minimales et maximales dans une collection.
Exemples d'opérations d'agrégation
Considérons quelques exemples d'opérations d'agrégation dans MongoDB. Supposons que nous ayons une collection « commandes » avec des documents contenant « customer_id » et « montant ».
Pour trouver la somme totale de 'amount' pour chaque 'customer_id', nous pouvons utiliser le pipeline d'agrégation avec l'opérateur $group:
Ce code regroupe les documents par 'customer_id' et ajoute les valeurs 'montant' pour chaque groupe.
Pour trouver la somme totale du « montant » pour tous les documents, nous pouvons utiliser la méthode map-reduce :
Ce code génère le « montant » de chaque document avec une clé nulle, puis additionne toutes les valeurs sorties.
Pour compter le nombre de documents dans la collection, nous pouvons utiliser l'opération d'agrégation à objectif unique 'count' :
Ce code renvoie le nombre de documents dans la collection 'commandes'.
Les opérations d'agrégation dans MongoDB constituent un moyen puissant et flexible de travailler avec des données. Ils vous permettent de traiter et de transformer vos documents de plusieurs manières pour obtenir les résultats souhaités.