Sujet de TP : MongoDB Compass
S1 2026-2027 - IUT - Université de Lille, BUT3 SD
TP MongoDB Compass — Restaurants
Créer la collection restaurants dans la BDD local dans MongoDB Compass.
Importer restaurants.json dans la collection restaurants.
Mode d'emploi Compass
Tout se passe dans MongoDB Compass, base local, collection restaurants. Selon ce qu'on demande, on utilise l'un des deux onglets suivants.
Onglet « Find » (Documents) — requêtes simples
Onglet Documents (avec restaurants sélectionnée), en haut à gauche du tableau de résultats, plusieurs champs : FILTER, PROJECT, SORT, LIMIT, SKIP.
- FILTER : restriction (les documents à garder). Reprend le document de requête.
- PROJECT : projection (les champs à afficher).
1= afficher,0= masquer (_id: 0pour cacher l'identifiant). - SORT : tri (ex.
{ "name": 1 }ou{ "score": -1 }). - LIMIT : nombre maximum de documents affichés.
On y déclare uniquement des documents de requête : champs + opérateurs simples ($gt, $regex, $elemMatch, …).
Onglet « Aggregations » — pipelines
Pour utiliser des fonctions d'agrégation, il faut utiliser l'onglet Aggregations.
- Cliquer sur Add Stage à chaque étape du pipeline (
$group,$unwind,$sort,$limit, …) et coller l'étape dans le champ qui s'ouvre. - Les étapes s'ajoutent les unes après les autres, dans l'ordre.
⚠️ Les opérateurs de pipeline (
$group,$unwind,$avg, …) ne fonctionnent pas dans le champ FILTER de l'onglet Find : ils doivent être saisis dans l'onglet Agregations.
Compter le nombre de documents
Aucun champ « count » dédié dans Find : on applique le FILTER, puis on lit le nombre total affiché au-dessus des résultats (ou le compteur en bas à droite).
0. Connexion & vérification
- Établir la connexion à MongoDB et récupérer la collection
restaurants. - Afficher les 5 premiers restaurants.
1. Valeurs distinctes
- Donner la liste des styles de cuisine présents dans la collection.
- Lister les 20 premières rues distinctes.
- Lister tous les grades possibles (dans
grades.grade).
2. Dénombrements
- Compter le nombre de restaurants de cuisine « French ».
- Compter le nombre de restaurants situés sur « Central Avenue ».
- Compter le nombre de restaurants ayant eu un score > 50.
3. Filtres
- Lister les restaurants dont le nom contient le mot « Burger » (afficher
nameetborough). Astuce : utilisez une regex insensible à la casse ($regex/i). - Lister les restaurants situés sur la rue « Flatbush Avenue » (afficher
nameetaddress.street). - Lister les restaurants ayant score = 0 ET grade = 'A' (afficher
nameetgrades).
4. Projections
- Lister tous les restaurants (projection :
name,address.building,address.street).
Bonus : Agrégation
- Top 5 des cuisines par nombre de restaurants.
- Moyenne du score par borough (sur toutes les visites).