Skip to main content

TP 02 – Relations en NoSQL avec MongoDB (Avis)

Objectif du TP

Ce TP est la suite du TP 01 MongoDB.
Il a pour objectif d’introduire la gestion des relations en NoSQL à l’aide de MongoDB, sans utiliser de jointures SQL classiques.

À la fin de ce TP, vous serez capable de :

  • Modéliser une relation entre documents
  • Manipuler des données liées entre plusieurs collections
  • Comprendre les limites et spécificités des relations en NoSQL

Contexte

Le site de vente en ligne dispose déjà d’une collection products.
Les clients peuvent désormais laisser des avis sur les produits.

Un avis :

  • concerne un seul produit
  • est lié à un produit existant
  • contient une note et un commentaire

1. Rappel de l’existant

Collection products

Vous devez réutiliser la collection products créée lors du TP 01.

Chaque produit contient au minimum :

  • un identifiant
  • un nom
  • un prix
  • un stock

2. Modélisation des avis

Deux approches sont possibles en NoSQL :

  • Référencement : les avis sont stockés dans une collection séparée et contiennent l’identifiant du produit
  • Imbrication : les avis sont stockés directement dans le document produit

Pour ce TP, vous utiliserez l’approche par référencement.

3. Création de la collection avis

Structure attendue d’un avis

Chaque avis doit contenir :

  • un identifiant
  • l’identifiant du produit concerné
  • le nom de l’auteur
  • une note (par exemple de 1 à 5)
  • un commentaire

Travail demandé

  1. Créer une collection nommée avis
  2. Vérifier que la collection est bien créée

4. Insertion de documents liés (CREATE)

Travail demandé

  1. Insérer plusieurs avis pour un même produit
  2. Insérer au moins un avis pour un autre produit
  3. Vérifier que chaque avis référence un produit existant

5. Lecture des données liées (READ)

Travail demandé

Écrire les requêtes permettant de :

  1. Afficher tous les avis
  2. Afficher les avis d’un produit donné
  3. Afficher tous les produits qui possèdent au moins un avis
  4. Afficher les avis avec les informations du produit associé

6. Mise à jour des avis (UPDATE)

Travail demandé

  1. Modifier la note d’un avis
  2. Modifier le commentaire d’un avis
  3. Vérifier les modifications

7. Suppression et cohérence des données (DELETE)

Travail demandé

  1. Supprimer un avis
  2. Supprimer un produit ayant des avis
  3. Observer et expliquer ce qu’il se passe au niveau des données

Conclusion

Ce TP vous a permis de :

  • gérer des relations simples en NoSQL
  • comprendre les différences fondamentales avec les relations SQL
  • manipuler plusieurs collections liées dans MongoDB

La modélisation des données est un point clé en NoSQL et dépend fortement du cas d’usage.