ALEXANDRE LOUVET


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: 0 pour 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 name et borough). Astuce : utilisez une regex insensible à la casse ($regex / i).
  • Lister les restaurants situés sur la rue « Flatbush Avenue » (afficher name et address.street).
  • Lister les restaurants ayant score = 0 ET grade = 'A' (afficher name et grades).

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).