Au ciné avec Mongo
[1h30]
Soit les données suivantes représentant des films de cinéma.
db.Cinema.drop()
db.Cinema.insert(
{
nom:"Goodfellas",
annee:1990,
realisateur:{nom:"Scorsese", prenom:"Martin"},
acteurs:
[
{nom:"De Niro", prenom:"Robert"},
{nom:"Liotta", prenom:"Ray"},
{nom:"Pesci", prenom:"Joe"}
]
})
db.Cinema.insert(
{
nom:"The Godfather",
annee:1972,
realisateur:{nom:"Coppola", prenom:"Francis Ford"},
acteurs:
[
{nom:"Pacino", prenom:"Al"},
{nom:"Brando", prenom:"Marlon"},
{nom:"Duvall", prenom:"Robert"}
]
})
db.Cinema.insert(
{
nom:"Million Dollar Baby",
realisateur:{nom:"Eastwood", prenom:"Clint"},
acteurs:
[
{nom:"Swank", prenom:"Hilary"},
{nom:"Eastwood", prenom:"Clint"}
]
})
db.Cinema.insert(
{
nom:"Gran Torino",
annee:2008,
realisateur:{nom:"Eastwood", prenom:"Clint"},
acteurs:
[
{nom:"Vang", prenom:"Bee"},
{nom:"Eastwood", prenom:"Clint"}
]
})
db.Cinema.insert(
{
nom:"Unforgiven",
realisateur:{nom:"Eastwood", prenom:"Clint"},
acteurs:
[
{nom:"Hackman", prenom:"Gene"},
{nom:"Eastwood", prenom:"Clint"}
]
})
db.Cinema.insert(
{
nom:"Mystic River",
realisateur:{nom:"Eastwood", prenom:"Clint"},
acteurs:
[
{nom:"Penn", prenom:"Sean"},
{nom:"Bacon", prenom:"Kevin"}
]
})
db.Cinema.insert(
{
nom:"Honkytonk Man",
realisateur:{nom:"Eastwood", prenom:"Clint"},
annee:1982,
acteurs:
[
{nom:"Eastwood", prenom:"Kyle"},
{nom:"Bloom", prenom:"Verna"}
]
})
db.Cinema.find()
db.Cinema.drop() db.Cinema.insert( { nom:"Goodfellas", annee:1990, realisateur:{nom:"Scorsese", prenom:"Martin"}, acteurs: [ {nom:"De Niro", prenom:"Robert"}, {nom:"Liotta", prenom:"Ray"}, {nom:"Pesci", prenom:"Joe"} ] }) db.Cinema.insert( { nom:"The Godfather", annee:1972, realisateur:{nom:"Coppola", prenom:"Francis Ford"}, acteurs: [ {nom:"Pacino", prenom:"Al"}, {nom:"Brando", prenom:"Marlon"}, {nom:"Duvall", prenom:"Robert"} ] }) db.Cinema.insert( { nom:"Million Dollar Baby", realisateur:{nom:"Eastwood", prenom:"Clint"}, acteurs: [ {nom:"Swank", prenom:"Hilary"}, {nom:"Eastwood", prenom:"Clint"} ] }) db.Cinema.insert( { nom:"Gran Torino", annee:2008, realisateur:{nom:"Eastwood", prenom:"Clint"}, acteurs: [ {nom:"Vang", prenom:"Bee"}, {nom:"Eastwood", prenom:"Clint"} ] }) db.Cinema.insert( { nom:"Unforgiven", realisateur:{nom:"Eastwood", prenom:"Clint"}, acteurs: [ {nom:"Hackman", prenom:"Gene"}, {nom:"Eastwood", prenom:"Clint"} ] }) db.Cinema.insert( { nom:"Mystic River", realisateur:{nom:"Eastwood", prenom:"Clint"}, acteurs: [ {nom:"Penn", prenom:"Sean"}, {nom:"Bacon", prenom:"Kevin"} ] }) db.Cinema.insert( { nom:"Honkytonk Man", realisateur:{nom:"Eastwood", prenom:"Clint"}, annee:1982, acteurs: [ {nom:"Eastwood", prenom:"Kyle"}, {nom:"Bloom", prenom:"Verna"} ] }) db.Cinema.find()
L'objectif est d'initialiser une base MongoDB avec ce script, puis d'écrire les requêtes MongoDB permettant de répondre aux questions suivantes.
Question
Question
Quels sont les films dans lesquels joue Clint Eastwood ?
Question
On veut à présent ajouter une nouvelle collection permettant de gérer des utilisateurs et leurs préférences. Pour chaque utilisateur on gérera un pseudonyme, et une liste de films préférés avec une note allant de une à trois étoiles.
Question
Question
Critiquer cette insertion mobilisant les identifiants des films ? Pourquoi n'est ce pas reproductible ?
Question
Quels sont les utilisateurs qui aiment au moins un film avec 3 étoiles ?
Question
Quels sont les identifiants des films qui sont aimés au moins une fois avec 3 étoiles ?
Question
Pourquoi trouver les titres de ces films n'est pas simple avec Mongo ?