Exercice MongoDB 1
Nous voulons créer une base de données en MongoDB pour la gestion des informations sur des
élèves d’une école et les cours qu’ils suivent. Pour chaque élève, nous voulons stocker son nom,
prénom et son matricule ; pour chaque cours, nous voulons stocker son titre, le nombre de crédits
et le nom des intervenants.
Nous créons trois collections, Students, Classes et StudentClasses.
Chaque document dans la collection Students représente un élève et contient les attributs
suivants :
- _id : identifiant du document dont la valeur est générée automatiquement par MongoDB.
- matricule : le matricule de l’élève.
- nom : le nom de l’élève.
- prénom : le prénom de l’élève.
Chaque document dans la collection Classes est un cours et contient les attributs suivants :
- _id : identifiant du document dont la valeur est générée automatiquement par MongoDB.
- titre : le titre du cours.
- credits : le nombre de crédits auxquels le cours donne droit.
- intervenants : la liste des intervenants du cours.
Chaque document dans la collection StudentClasses contient la référence à un élève et une liste
de références aux cours qu’il suit, plus précisément :
- _id : identifiant du document dont la valeur est générée automatiquement par MongoDB.
- student_id : identifiant du document qui représente un élève.
- cours : tableau, dont chaque élément est l’identifiant d’un document représentant un
cours.
Par la suite, nous considérons qu’une opération de lecture consiste en la lecture d’un document
de la base.
Question 1 : Combien d’opérations de lecture faudra-t-il pour récupérer le titre des cours suivis
par un élève étant donné son matricule ?
Question 2 : Proposez une organisation de données permettant de stocker toutes les
informations sur un élève dans un seul document.
Question 3 : Considérez l’organisation de données issue de la question 2. Exprimez en
MongoDB une requête pour obtenir les titres des cours suivis par l’élève dont le matricule est
1234567.
Question 4 : Comparez les organisations de données considérées aux questions 1 et 2 et
présentez leurs avantages et leurs inconvénients.