MongoDB

Some of 'em are really good !

Le but de cet exercice est de vous aider à vous familiariser avec les instructions de base de MongoDB

Nous allons commencer avec un schéma simple :

Un document correspond à un film, qui aura un nom, un réalisateur et une liste d'acteurs qui ont joué dans ce film. Un acteur a un nom et un prénom

Commencez par créer une base de données s'appelant Cinema

Question

Insérer le film "The godfather" réalisé par "Francis Ford Coppola" dans lequel a joué "Marlon Brando", "Al Pacino" et "Robert Duvall"

Indice

Toute requête est précédée de db

Indice

La requête se fera sur la collection Cinema

Indice

Utiliser la méthode insert

Solution
1
db.Cinema.insert({nom :"The godfather", realisateur :"Francis Ford Coppola", acteurs :[{nom :"Pacino", prenom :"Al"}, {nom :"Brando",prenom :"Marlon"}, {nom :"Duvall", prenom :"Robert"}]})
2

Vous pouvez voir les informations que vous avez rajouter à la Collection en utilisant la méthode find

Question

Marvel prévoit bientôt de faire un film d'avengers avec de jeunes personnages de BD dont Kamala Khan.

Le nom du réalisateur et des acteurs qui vont jouer dans le film ne sont pas encore connus.

Il nous est toutefois demandé d'ajouter cette information dans notre collection sachant que le film s'appellera "Young Avengers". On donnera l'_id 1 au film.

Solution
1
db.Cinema.insert({_id:"1", nom:"Young Avengers"})

Question

Nous venons d'apprendre que le film sera finalement réalisé par "Joe Johnston".

Ajoutez le nom du réalisateur aux informations

Indice

Utilisez la méthode update

Solution
1
db.Cinema.update({_id:"1"}, {$set:{realisateur:"Joe Johnston"}})

Question

Après les premiers castings, il a été convenu que le personnage de Kamala Khan sera interprété par l'actrice pakistanaise Sanam Jhung.

Mettez à jour les informations dans la base.

Indice

Nous utiliserons l'opérande $push qui permet d'ajouter une nouvelle valeur dans un tableau.

Son utilisation est similaire à celle de $set

$push :{tab :element} pour ajouter element à la liste des éléments dans tab

tab est créé si il n'existe pas

Indice

Utiliser la méthode update et faire un push à la place du set

Solution
1
db.Cinema.update({_id:"1"}, {$push:{acteurs:{nom:"Jhung", prenom:"Sanam"}}})

Question

Ayant du mal à trouver les acteurs adaptés aux personnages, Marvel décide d'abandonner le projet.

Nous allons donc retirer ce dernier de notre base de données

Indice

Utilisez la méthode remove

Solution
1
db.Cinema.remove({_id:"1"})

Pour avoir un peu plus de données dans notre base récupérer le fichier suivant

  • Sur Robomongo : File->Open pour allez chercher le fichier et ensuite faîtes Ctr+Entrer ou F5 pour exécuter

  • Sur le console mongo : copiez les instructions dans votre fichier téléchargé et collez les sur l'invite de commande puis faîtes Entrer

Cinema.txt

Question

Lister les noms des films réalisés par Clint Eastwood

Indice

Le premier paramètre de la méthode find est un objet JSON qui permet de faire une restriction.

Exemple : {name :"toto"} pour restreindre les résultats aux gens qui s'appellent toto

Indice

Le deuxième paramètre permet de projeter les champs dont on a besoin.

{name :1} par exemple pour projeter le champ name du document.

Mettre le champ _id à 0 pour ne pas le projeter

Solution
1
db.Cinema.find({realisateur :"Clint Eastwood"}, {_id :0, nom :1})

Question

Donnez les films dans lesquels a joué Robert Deniro

Solution
1
db.Cinema.find({'acteurs.nom' :"Deniro"})
2
PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Amadou Sonko, 2014 (Contributions : Stéphane Crozat, les étudiants de API04) Réalisé avec Scenari (nouvelle fenêtre)