0% ont trouvé ce document utile (0 vote)
39 vues3 pages

Requêtes MongoDB pour Films et Utilisateurs

Transféré par

Sirine ben amor
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
39 vues3 pages

Requêtes MongoDB pour Films et Utilisateurs

Transféré par

Sirine ben amor
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Matière : Les Base de données NoSQL AU : 2023-2024

Section : T-LSI ADBD


Enseignante responsable : Faiza GHOZZI,

TP2 : Les requêtes d’interrogations Simples (correction)

I. Interrogation de la collection Movies avec find() :


Donner les requêtes sur la collection Movies répondant aux requêtes suivantes :
1) Afficher le premier film de la collection Movies

db.getCollection("Movies").findOne({})

2) Afficher le titre et les genres des films dont le réalisateur Terry Gilliam ?

db.getCollection("Movies").find({directors:"Terry Gilliam"},{title:1,genres:1,_id:0})

3) Donner l’année d’apparition du film “Bootmen”.


db.getCollection("Movies").find({title:"Bootmen"},{year:1, title:1})
4) Quels sont les films réalisés par quelqu'un prénommé Terry avant 2000 ?
db.getCollection("Movies").find({directors:/Terry/,year:{$lt:2000}},{directors:
1,_id:0, year:1})
ou
db.getCollection("Movies").find({directors:{$regex:/Terry/},year:{$lt:2000}},{
directors:1,_id:0, year:1})
5) Donner le titre des films réalisé entre les années 1980 et 1990.

db.getCollection("Movies").find({year:{$gt:1980,$lt:1990}},{year:1,title:1})

6) Donner le titre des films réalisé dans les années 70 avec un tri alphabétique des
titres.

db.getCollection("Movies").find({$and:{[{ year :{$gte:1970}}], {year :{


[$lt:1980]}}},{title:1}).sort({title:1})
ou

db.getCollection("Movies").find({year:{$gte:1970,$lt:1980}},{title:1}).sort({ti
tle:1})
7) Donner le titre des films du genre children et comedy (attention à la casse)

db.getCollection("Movies").find({genres:{$regex:'^children.*comedy',
$options:'i'}},{title:1, genres:1})// commence par children
ou
db.getCollection("Movies").find({genres:{$regex:'.*children.*comedy',
$options:'i'}},{title:1, genres:1})// contient children

8) Donner le titre des films du genre “crime” ou “drama”.


db.getCollection("Movies").find({genres:{$in:[/^crime/i,/^drama/i]}},{title:1,
genres:1})

9) Donner les films dont le Nom (Last_Name) du deuxième acteur est "Allen" et le
directeur de ce film commence par la lettre ‘J’
db.getCollection("Movies").find({directors:/^J/,"actors.Last_Name":/Allen/},{directors
:1, title:1, actors:1})

10) Le titre des films dont “ Morgan Freeman“ est l’un des acteurs.

db.getCollection("Movies").find({"actors.First_Name":"Morgan","actors.Last_
Name":"Freeman"},{title:1,"actors.First_Name":1,"actors.Last_Name":1})

11) Donner les films qui ont 2 acteurs seulement.


db.getCollection("Movies").find({"actors":{"$size":2}},{actors:1}) //ajouter
atres films
12) Donner les films qui ont au moins 2 réalisateurs.
db.getCollection("Movies").find({"directors.2":{"$exists":true}},{directors:1,
title:1})

13) Donner les films qui ont comme acteur “Brad Pitt “ (utiliser $elemMatch)

db.getCollection("Movies").find({"actors":{$elemMatch:{First_Name:"Brad",
Last_Name:"Pitt"}}},{actors:1, title:1}) // il existe au moins une seule fois

14) Donner les films qui ont comme premier acteur “Brad Pitt “
db.getCollection("Movies").find({"actors.0.First_Name":"Brad","actors.0.Last
_Name":"Pitt"},{actors:1, title:1}) // forcer l'index

II. Interrogation de la collection Utilisateurs avec find() :


1) Combien d’utilisateurs ont entre 30 et 35 ans?
db.getCollection("Utilisateurs").find({age:{$gte:30,$lte:35}},{name:1,age:1}).coun
t()
2) Quels sont les trois derniers films notés par Ryan Leland?

db.getCollection("Utilisateurs").find({name:"Ryan Leland"},{"movies":{$slice:-3}})

Le $slice avec une valeur négative indique à MongoDB de compter à partir de la fin
du tableau.

3) Afficher les hommes dont leurs notes est supérieur à 4


db.getCollection("Utilisateurs").find({$and :[{"movies.rating":{$gt:4}},{gender : "M"}]},
{gender:1,"movies.rating":1}) // au moins
4) Afficher que les notes entre 4 et 5 Attribuée par des femmes ?

db.getCollection("Utilisateurs").find({$nor
:[{"movies.rating":{$gt:5}},{"movies.rating":{$lt:3}},{"movies.rating":{$exists:false}},{gen
der:"M"}],},{gender:1,"movies.rating":1,"movies.movieid":1})

5) Combien d’utilisateurs ont noté tous les films de Superman (id 2640, 2641, 2642,
2643) ?

db.getCollection("Utilisateurs").find({"movies.movieid":{$all:[2640,2641,2642,2643]}},{na
me:1,"movies.movieid":1, gender:1}).count()

6) Combien d’utilisateurs ont notés exactement 48 films ?

db.getCollection("Utilisateurs").find({"movies":{$size:48}},{name:1,"movies.rating":1})

Vous aimerez peut-être aussi