From 0c6e51b5f2186705656b4ef43648cf2f7d154b68 Mon Sep 17 00:00:00 2001 From: "iliya.saroukha" <iliya.saroukhanian@etu.hesge.ch> Date: Wed, 5 Jun 2024 15:25:50 +0200 Subject: [PATCH] feat: finished statements --- statements.js | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/statements.js b/statements.js index ab1d20d..6601ffb 100644 --- a/statements.js +++ b/statements.js @@ -7,5 +7,37 @@ db.user.updateMany({ pwd: "password123" }, { $set: { pwd: "123password" } }); // Requête de suppression -- Supprime toutes les personnes qui ne sont pas des administrateurs db.user.deleteMany({ is_admin: { $lt: 1 } }); +// 1) Projection et séléction -- Affiche les emails des utilisateurs qui sont administrateurs +db.user.find({ is_admin: { $eq: 1 } }, { _id: 0, email: 1 }); -// 1) Projection et séléction +// 2) Projection et séléction -- Affiche le nom des équipes qui ont un score plus grand ou égal à 2 +db.team.find({ score: { $gte: 2 } }, { _id: 0, name: 1 }); + +// Requête d'aggrégation -- Somme le nombre des victoires de toutes les équipes +db.team.aggregate([ + { + $group: { + _id: "Somme des victores", + total: { $sum: "$score" } + } + } +]); + +// Fonction mapReduce -- Affiche le nombre de personnes par équipes +const mapFunction = function() { + emit(this.team_id, 1); +}; + +const reduceFunction = function(key, values) { + return Array.sum(values); +}; + +db.user.mapReduce( + mapFunction, + reduceFunction, + { + out: "team_users_count" // Collection de sortie où les résultats seront stockés + } +); + +db.team_users_count.find() -- GitLab