Tp2 agregats dans mongodb Université Mohamed Premier Faculté Pluridisciplinaire de Nador Département Informatique Master SDSI Bases de Données NOSQL - TP Agrégats dans MongoDB Créer une séquence d ? opérations avec ??aggregate ? La fonction aggregate perm
Université Mohamed Premier Faculté Pluridisciplinaire de Nador Département Informatique Master SDSI Bases de Données NOSQL - TP Agrégats dans MongoDB Créer une séquence d ? opérations avec ??aggregate ? La fonction aggregate permet de spéci ?er des cha? nes d ? opérations appelées pipeline d ? agrégation Cette fonction aggregate prend une liste d ? opérateurs en paramètre Il existe plusieurs types d ? opérateurs de manipulation de données Nous allons nous concentrer par la suite sur les principaux Fonction limit sort match unwind Opération restriction à un petit nombre de documents très utiles pour tester son calcul tri sur les documents restriction sur les documents à utiliser séparation d'un document en plusieurs sur la base d'un tableau addFields project group sortByCount lookup ajout d'un champs dans les documents redé ?nition des documents regroupements et calculs d'aggégrats agrégat tri jointure avec une autre collection Pour illustrer un aggregate on va reprendre notre dernière requête ?nd db restaurants aggregate match grades grade C project name borough id Le résultat est identique toutefois c ? est un peu plus lourd à écrire On identi ?e bien chaque opérateur avec leur dé ?nition Notes Rappelez-vous que l'interpréteur mongodb utilise le langage Javascript Chaque opérateur Cpeut alors être dé ?ni par une variable que nous pouvons utiliser directement varMatch match grades grade C varProject project name borough id db restaurants aggregate varMatch varProject Nous utiliserons ces variables par la suite pour alléger le code en ré- utilisant des variables Tri Trions maintenant le résultat par nom de restaurant par ordre croissant croissant décroissant - varSort sort name db restaurants aggregate varMatch varProject varSort Groupement simple Comptons maintenant le nombre de ces restaurants premier rang ayant pour valeur C Pour cela il faut dé ?nir un opérateur group Celui-ci doit contenir obligatoirement une clé de groupement id puis une clé total à laquelle on associe la fonction d'agrégation sum varGroup group id null total sum db restaurants aggregate varMatch varGroup id null total Cette requête est équivalente à db restaurants count grades grade C db restaurants ?nd grades grade C count Groupement par valeur Comptons maintenant par quartier le nombre de ces restaurants Il faut dans ce cas changer la clé de groupement en y mettant la valeur de la clé borough Mais si l ? on essaye ceci varGroup group id borough total sum db restaurants aggregate varMatch varGroup id borough total La valeur de la clé de groupement prend une unique valeur borough Le problème vient du fait que nous n ? avons pas pris la valeur mais seulement précisé un texte Pour prendre la valeur il faut pré ?xer la clé par un dollar borough cela va lors de l ? exécution indiquer qu'il faut utiliser la valeur de la clé pour l'agrégation varGroup group id borough total sum Cdb restaurants aggregate varMatch varGroup id Bronx total id Staten Island total id Manhattan total id Brooklyn total id Queens total Ce qui fait bien un total de Unwind Maintenant trouvons le score
Documents similaires
-
406
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Mai 25, 2021
- Catégorie Administration
- Langue French
- Taille du fichier 50.1kB