Académique Documents
Professionnel Documents
Culture Documents
D’AGREGATION NOSQL
MEMBRES DU GROUPE:
LEMA KADER
SATCHIVI ASHLEY
TIDATOA BÉNÉDICTA
YERIMA BOUCHARATOU
INTRODUCTION
-$sum
-$max
-$min
-$count
-$avg
-$push
-$addToSet
-$First
-$last
OPÉRATEUR DE SOMME:$SUM
=>Avec SQL
SELECT SUM(copies) as nb
FROM client
Vous remarquez qu’ici, l’expression qui guide le regroupement est soit null soit une
constante. Cela signifie que tous les documents de la base seront regroupé
ensemble et qu’un seul calcul sera fait pour ce groupe.
OPERATEUR DE COMPTAGE: $COUNT
L’opérateur $match exclu les documents qui possèdent un individu avec un âge
inférieur À 24.L’opérateur $count va donc agir sur les documents ayant un individu
avec un âge supérieur à 24 à l’opérateur $gt (Plus grand que) et va assigner à la
valeur NB_+24 le nombre de documents répondant au critère.
SANS REGROUPEMENT
Lorsqu’on utilise la fonction agregate,il faut donner les individus sur lesquels on veut faire
la requête. Dans notre cas, on choisit tous les individus. On le note id:null.On cré notre
variable qu’on appelle nb qui va faire la somme de tous les individus.
Dans cet exemple, nous avons compté le nombre d’individus sans sélection.
En pratique, cela n’a pas forcément beaucoup d’intérêt .Il s’avère plus utile de pouvoir
sélectionner le nombre de variables répondant à un critère. Pour cela, nous allons regarder
avec une requête de regroupement.
AVEC REGROUPEMENT
On obtient donc plusieurs listes différentes contenant pour chacune le nombre de restaurants
dans chaque liste nommée par le type de cuisine.
OPÉRATEURS D’EXTREMUM:$MIN,$MAX
=>MongoDB =>SQL
db.ventes.aggregate([ SELECT MAX(prix) as "prix max",
{$group: {_id: null, MIN(prix) as "prix min"
Attention: Ne pas oublier le “$” dans les attributs entre guillemets à droite des deux
points pour bien faire référence à l’attribut et non à une chaîne de caractères.
Cette requête renvoie la valeur maximale puis minimale que prend la variable
$prix sur tous les documents
{
"_id" : null,
"prix_max" : 20.0,
"prix_min" : 5.0
}
AVEC REGROUPEMENT
=>MongoDB =>SQL
db.ventes.aggregate([ SELECT MAX(prix) as "prix max",
{$group: {_id:"$objet", MIN(prix) as "prix min"
quantité_max: {$max: FROM ventes
"$quantité"},
GROUP BY quantité
quantité_min: {$min:
"$quantité"}}}
])
EXEMPLE
/* 2 */
{
"_id" : "b",
"quantité_max" : 1.0,
"quantité_min" : 1.0
}
/* 3 */
{
"_id" : "c",
"quantité_max" : 10.0,
"quantité_min" : 5.0
}
NULL OU INEXISTANT
La fonction AVG recherche tous les éléments de la collection de joueurs et renvoie le score moyen. Notez la
différence par rapport à la fonction MIN qui renvoie l’élément de données complet, la fonction AVG renvoie
uniquement la valeur.
Exemple de requête sans regroupement:
=>Avec MongoDB
db.coll.aggregate([
{$group: {_id: null,
moy: {$AVG: "$att"}}}
])
CONCEPT DE PIPELINE
Dans la commande UNIX, le pipeline Shell signifie la possibilité d'exécuter une opération sur
une entrée et d'utiliser la sortie comme entrée pour la commande suivante et ainsi de suite.
MongoDB prend également en charge le même concept dans le cadre d'agrégation. Il existe
un ensemble d'étapes possibles et chacune d'elles est considérée comme un ensemble de
documents en tant qu'entrée et produit un ensemble de documents résultant (ou le document
JSON final résultant à la fin du pipeline). Cela peut ensuite être utilisé à son tour pour l'étape
suivante et ainsi de suite.
Voici les étapes possibles du cadre d'agrégation -
$projet - Utilisé pour sélectionner certains champs spécifiques d'une collection.
$match - Il s'agit d'une opération de filtrage et donc cela peut réduire la quantité de
documents qui sont donnés en entrée à l'étape suivante.
• .
CONCEPT DE PIPELINE