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