TP 2 : Interrogation de bases de données Master: Systèmes Embarqués & Services Numériques
Année: 2023-2024
en MongoDB Module: Bases de données NoSQL
Prof.: Yasmine LAMARI - [Link]@[Link]
Consignes :
Un rapport de ce travail pratique doit être préparé en binôme d’étudiants ou en monôme, et
soumis dans la plateforme Google Classroom associée à ce module, avant la date de la
prochaine séance de travail pratique.
Le rapport doit être bref, clair et concis. Il doit également inclure les étapes de réalisation du
travail pratique expliquées si nécessaire à l’aide des captures d’écran claires.
Le document électronique à rendre doit respecter la nomenclature suivante :
− Type : PDF
− Nom : NomFamilleEtudiant1_NomFamilleEtudiant2_TPM2
1. Importation des données
1.1 Créez une base de données, intitulée tpm2, et importez dedans les collections de
données suivantes :
Tableau 1. Sample Mflix Dataset [[Link]
label-sample-mflix]
Intitulé de la collection Type Description
mflix_movies Text Contient des informations sur les films, comme
l'année de sortie, le réalisateur et les critiques.
mflix_theaters Geo Contient les emplacements des salles de
cinéma.
mflix_comments Text Contient des commentaires associés à des
films spécifiques.
1.2 Explorez ces collections de données.
2. Interrogation simple
Exprimez des requêtes simples pour les recherches suivantes (pas avec MapReduce):
2.1. En utilisant la collection comments, trouvez tous les commentaires publiés par l'utili-
sateur « Lauren Carr » et renvoyer uniquement les champs nom ("name") et date
("date").
2.2. En utilisant la collection movies, trouvez toutes les évaluations ("rated") uniques que
les films sortis en 1994 ont reçues.
2.3. Combien y a-t-il de films dans la collection movies ?
2.4. Combien y a-t-il de films qui ont exactement six commentaires ("num_mflix_com-
ments").
2.5. Trouvez le nombre de films non classés ("rated" vaut "UNRATED") sortis après 2008
("year").
2.6. Trouvez des films des genres dramatique ou policier dans lesquels l'acteur ("cast")
« Leonardo DiCaprio » et le réalisateur ("directors") « Martin Scorsese » ont collabo-
ré. ("genres" vaut "Drama" ou "Crime"). Affichez uniquement le titre, l’année, et les
genres.
1
TP 2 : Interrogation de bases de données Master: Systèmes Embarqués & Services Numériques
Année: 2023-2024
en MongoDB Module: Bases de données NoSQL
Prof.: Yasmine LAMARI - [Link]@[Link]
2.7. Trouvez des films disponibles uniquement en trois langues : anglais, français, et can-
tonais ("English", "French", "Cantonese") et dans l’ordre, en affichant uniquement
l’id, le titre, et les langues.
2.8. Trouvez des films disponibles au moins en trois langues : anglais, français, et canto-
nais ("English", "French", "Cantonese"), en affichant uniquement l’id, le titre, et les
langues. (Indice : $all).
2.9. Trouvez les films qui ont six nominations ("nominations") et ont remporté au moins
cinq prix ("wins"). Affichez uniquement leurs titres, leurs awards.
2.10. Affichez les titres de films de « Charles Chaplin » avec une option de tri décroissant.
2.11. En utilisant la collection theaters, trouvez une liste de tous les théâtres de l'État du
Minnesota ("MN"), ensuite, affichez leurs villes ("city") triées par ordre croissant, et
limitez le résultat à 3 villes. (Indice agrégation).
2.12. En utilisant la collection movies, Trouvez des trois meilleurs films du genre roman-
tique triés par classement décroissant "IMDb" et ne renvoyez que les films sortis
avant 2001. Affichez les champs suivants : "title", "genres", "released", "[Link]-
ting".
3. Requêtes textuelles
3.1. En utilisant la collection movies, précisez que le champ "title" est de type texte en
créant un index sur ce champ.
3.2. Affichez les index disponibles pour la collection movies.
3.3. Précisez cette fois que le champ "plot" est de type texte et créez un index sur ce
champ. Que remarquez-vous ?
3.4. Cherchez les films dont le champ "title" contient « Monsieur ».
4. Requêtes géographiques
4.1. En utilisant la collection theaters, précisez que le champ "coordinates" est de type
2dsphere en créant un index sur ce champ.
4.2. Affichez les index disponibles pour la collection theaters.
4.3. Cherchez tous les théâtres qui sont à moins de 1000m du point : $geometry: { type:
"Point", coordinates: [-73.9899604, 40.7575067] }. (Indice : $near)