Agrégation dans MongoDB : pipeline et syntaxe
Publié: 2020-09-23Table des matières
introduction
MongoDB est une forme de support de stockage de données à volume élevé. Il agit comme une base de données non relationnelle avec des requêtes de documents. L'unité de base de MongoDB est constituée de paires clé-valeur des documents de la collection MongoDB. Il est devenu un médium très bénéfique à partir du début des années 2000.
L'agrégation dans MongoDB est un cadre qui nous permet d'effectuer diverses tâches de calcul sur des documents dans une ou plusieurs collections MongoDB. C'est un moyen efficace de générer des rapports ou une poignée de mesures de données pour l'interprétation à partir de différents documents. Le framework est nommé MongoDB car il regroupe plusieurs documents pour former des résultats unis et combinés.
L' agrégation dans MongoDB contient principalement le framework de pipeline. Le concept sous-jacent de base du pipeline est que l'entrée est extraite d'une collection MongoDB et que les documents passent par une série d'étapes pour produire finalement une sortie unifiée. Cette idée est très similaire au concept de pipeline Linux, c'est-à-dire Bash.
Fonctionnalités clés de MongoDB
Il existe de nombreuses raisons pour lesquelles ce système de base de données est largement utilisé. Certaines caractéristiques spéciales sont mentionnées ci-dessous :
- MongoDB, étant une base de données NoSQL, est très flexible à utiliser. Il est orienté document.
- Les paires clé-valeur peuvent indexer les champs à l'intérieur du document. C'est une caractéristique très spéciale de MongoDB.
- MongoDB divise un grand ensemble de données en petites instances en utilisant un concept de partitionnement. De cette façon, il peut fonctionner sur de nombreux serveurs, en gardant les instances en équilibre.
- Les requêtes dans MongoDB peuvent renvoyer des champs spécifiques dans un document.
Lire : Idées et sujets de projet MongoDB
Pourquoi l'agrégation dans MongoDB est-elle utile ?
Il peut arriver que le traitement d'un million de fichiers intégrés soit nécessaire. Cependant, cela peut provoquer un débordement dans la pile du serveur et entraîner l'arrêt du processus. La contrainte de traiter un grand nombre de fichiers embarqués s'est livrée à l'amélioration du processus de numérisation en associant les fichiers entre eux.

Par conséquent, l'opération d'agrégation a été conçue pour calculer les documents à différentes étapes et montrer l'effet cumulatif en conséquence et le renvoyer. La technique d'appariement de génération de résultats a révolutionné les problèmes d'un grand nombre de fichiers. Par conséquent, le cadre d'agrégation est essentiel.
Ce framework peut effectuer de nombreuses opérations de requête sur différents fichiers simultanément. Cela ressemble beaucoup aux requêtes de base de données relationnelle.
Consultez : Commandes MongoDB les plus courantes
Qu'est-ce que le pipeline d'agrégation ?
Un pipeline est un cadre d'étapes continues conçues pour effectuer des tâches distinctes qui, ensemble, résolvent un objectif unifié. Ici, dans MongoDB Aggregation , ce framework sert le processus de calcul et manipule les documents. De nombreux documents de la collection MongoDB sont donnés en entrée, et spécifiques à la méthodologie ; une tâche particulière est effectuée à chaque étape.
Plus tard, tous les résultats sont réunis collectivement et des métriques cumulatives sont calculées, qui sont affichées en sortie. La sortie est assez similaire aux sorties de requête fournies par les bases de données relationnelles, c'est-à-dire un flux de documents à travailler en plus. Plus tard, il peut être utilisé dans la génération de rapports de création de sites Web.
Ainsi, chaque étape agit ici comme une unité de traitement. Pour chaque étage interne, la sortie de l'étage précédent agit comme une entrée. De plus, des filtres supplémentaires peuvent être ajoutés au stade initial. Les étapes sont souvent conçues avec de nombreux hyperparamètres. A cet effet, quelques molettes ou boutons de réglage sont prévus pour les contrôler. La modification de ces hyperparamètres affecte les résultats de cette étape. Cela a paramétré la tâche que l'on souhaite effectuer. De cette façon, une étape exécute une tâche générique.
Il peut arriver que l'on veuille inclure plusieurs fois un type d'étape similaire dans un pipeline particulier. Par exemple, il peut y avoir un filtre présent dans la partie initiale pour ne pas faire passer toute la collection. Mais plus tard, après un certain traitement, un autre filtre peut être nécessaire pour un critère différent.
Syntaxe
Il existe un format spécifique dans lequel les requêtes d'agrégation sont construites. La syntaxe et le format du code sont présentés ci-dessous.

db.Collection_Name.aggregate([
{ $match : {“_id_field_” : valeur}}
{ $groupe : {“_id_field_” : valeur}}
{ $sort : {“_id_field_” : valeur}}
]);
Commandes de pipeline
- Commandes structurelles : les commandes structurelles aident à organiser les documents et à les rendre adaptés aux opérations de manipulation de données. Il existe deux commandes structurelles principales, qui sont très souvent utilisées.
- Matching : C'est l'étape de filtrage. Cette étape découpe les documents qui ne sont pas pris en charge. Cette commande ressemble beaucoup à la fonction WHERE de SQL.
db.customers.aggregate([
{ $match : {“zip” : 700068}}
]);
Le morceau de code ci-dessus renvoie les documents de tous les clients qui vivent dans le code postal 700068, à partir des collections MongoDB.
1. Groupement : Après avoir filtré les documents, le groupement spécifique est nécessaire. Cela permet de former des sous-ensembles de l'ensemble de la collection. En outre, les documents peuvent être regroupés sur des points communs similaires. Le clustering permet d'effectuer des opérations similaires sur eux ensemble.
db.customers.aggregate([
{ $match : {“zip” : 700068}}
{
$groupe : {
_id : nul,
Compter: {
$ somme : 1
}
}
]);
$group permet de regrouper les documents pour effectuer des opérations de transformation. La commande _id traite de la préservation des champs de données.
2. Trier : Cela permet de trier les documents par ordre croissant ou décroissant en fonction d'un champ de requête spécifique.
db.customers.aggregate([
{ $match : {“zip” : 700068}}
{
$groupe : {
_id : nul,
Compter: {
$ somme : 1
}
}
{
$sort : {
{"zip": -1}
}
}
]);
Cela triera les documents en fonction de leur code postal.
- Commandes opérationnelles : Il existe de nombreuses commandes opérationnelles dans MongoDB Aggregation , qui aident à effectuer les tâches de données. Certaines des commandes les plus importantes sont décrites ci-dessous :
- Summation ($sum) : Renvoie l'addition de toutes les valeurs des documents.
- Maximum ($max) : Affiche la valeur maximale d'une variable particulière de tous les documents.
- Minimum ($min) : Renvoie la valeur minimale d'une variable.
- Moyenne ($avg) : Calcule la moyenne des valeurs de chaque document.
- Push ($push) : Ajoute une valeur à un tableau.
- First ($first) : Renvoie le premier document d'une collection.
- Last ($last) : Renvoie le dernier document d'une collection.
- Adding to Set ($addToSet) : Ajoute une valeur à un tableau d'un document sans le dupliquer.
Lisez aussi: Portée future de MongoDB

Emballer
À l'ère du Big Data, les bases de données non relationnelles sont très utiles pour gérer de grands ensembles d'échantillons. De nos jours, le domaine de la science des données et du développement est bien habitué à l'utilisation de MongoDB. Ce framework est utilisable avec des langages populaires tels que Java, JavaScript, Python et de nombreux autres langages. Avoir une connaissance de MongoDB et une bonne main avec un cadre d'agrégation peut faire une carrière de rêve.
Si vous vous êtes déjà intéressé à MongoDB agrégation et recherchez des cours en ligne, consultez notre programme PG Diploma in Software Development Specialization in Big Data qui est conçu pour les professionnels en activité et fournit plus de 7 études de cas et projets, couvre 14 langages et outils de programmation, des ateliers pratiques pratiques, plus plus de 400 heures d'apprentissage rigoureux et d'aide au placement dans les meilleures entreprises.
Dans ce cas, ce cours vous aidera certainement à acquérir toutes les connaissances concernant les structures de données et les algorithmes, la programmation Java, la base de données, HTML, CSS, JavaScript, Angular, Java, l'analyse et la conception orientées objet.
Plus de 250 heures d'enseignement en ligne, des sessions individuelles avec des experts de l'industrie et bien plus encore sont disponibles dans ce cours. En plus de cela, le cours sera organisé par des experts en la matière d'upGrad, et vous bénéficierez d'opportunités de placement dans les meilleures entreprises informatiques, entreprises basées sur des produits et start-ups.
Apprenez des cours de développement de logiciels en ligne dans les meilleures universités du monde. Gagnez des programmes Executive PG, des programmes de certificat avancés ou des programmes de maîtrise pour accélérer votre carrière.
