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é
- Créer une collection nommée
avis - Vérifier que la collection est bien créée
4. Insertion de documents liés (CREATE)
Travail demandé
- Insérer plusieurs avis pour un même produit
- Insérer au moins un avis pour un autre produit
- 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 :
- Afficher tous les avis
- Afficher les avis d’un produit donné
- Afficher tous les produits qui possèdent au moins un avis
- Afficher les avis avec les informations du produit associé
6. Mise à jour des avis (UPDATE)
Travail demandé
- Modifier la note d’un avis
- Modifier le commentaire d’un avis
- Vérifier les modifications
7. Suppression et cohérence des données (DELETE)
Travail demandé
- Supprimer un avis
- Supprimer un produit ayant des avis
- 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.