Mongodbserie
Mongodbserie
Mongodbserie
(http://uqam.ca)
Département d'informatique
Alexandre Terrasa
MongoDB
Démonstration
MongoDB
Installation
Windows
Mac
Linux
Client mongo .
Exercices
Exercice 1
Exercice 2
Exercice 3
Exercice 4
Exercice 5
MongoDB
Démonstration
Installer MongoDB
Comprendre le fonctionnement de MongoDB
Faire des opérations simples à la console
MongoDB
MongoDB est un système de gestion de bases de données NoSQL (http://fr.wikipedia.org/wiki/NoSQL).
Contrairement aux bases de données relationnelles, dans MongoDB on n'utilise pas des tables mais des
documents au format JSON.
Pour en apprendre plus sur MongoDB, jetez un coup d'oeil au site officiel: mongodb.org
(http://www.mongodb.org/)
Installation
moz-code.org/uqam/demos/INF4375/archives/automne2014/semaine03/index.html#Exercice_1 1/9
02/12/2021 13:44 Alexandre Terrasa
Nous allons maintenant voir comment installer MongoDB sur vos machines. Dans le cadre du cours INF4375,
Jacques vous recommande de travailler avec une version >= 2.4.0 .
Quelle que soit votre plate-forme (Windows, Mac, Linux) vous trouverez les paquets d'installation directement
sur le site (http://www.mongodb.org/downloads (http://www.mongodb.org/downloads)).
Pour plus
d'informations n'hésitez pas à vous diriger vers le guide d'installation
(http://docs.mongodb.org/manual/installation/) de MongoDB.
Windows
Attention, sur les postes du laboratoire vous ne pouvez pas utiliser l'installeur!
2. Extraire l'archive zip sur votre poste (elle doit contenir un répertoire bin\ ).
3. Créer les dossiers C:\data et C:\data\db (c'est là que MongoDB stocke vos données et d'autres
choses).
$ mongod
Tue Sep 16 18:24:14 [initandlisten] build info: Linux lamiak 2.6.42-37-generic #58-Ubun
tu SMP Thu Jan 24 1
Tue Sep 16 18:24:14 [initandlisten] recover : no journal files present, no recovery nee
ded
Tue Sep 16 18:24:14 [websvr] admin web console waiting for connections on port 28017
Mac
Suivre les instructions ici (http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/).
Linux
Le plus simple est d'installer le paquet avec sudo apt-get install mongodb .
Pensez ensuite à vérifier la version avec mongod --version . Si ce n'est pas la bonne version, vous pouvez
toujours suivre la procédure manuelle (http://docs.mongodb.org/manual/administration/install-on-linux/).
Attention, si vous passez par apt-get install , le serveur se lance alors avec la commande sudo service
mongodb start .
Client mongo .
moz-code.org/uqam/demos/INF4375/archives/automne2014/semaine03/index.html#Exercice_1 2/9
02/12/2021 13:44 Alexandre Terrasa
Ce que nous venons de lancer c'est le serveur: mongod (pour mongo daemon).
Pour interragir avec ce serveur, il nous faut un client. Pour l'instant, nous allons lancer nos requêtes au serveur
au travers de la console mongo .
Dans une ligne de commande lancez l'éxécutable bin\mongo.exe . Sous MacOS X ou Linux lancez le client
via la commande mongo .
$ mongo
>
C'est avec cette invite de commande que nous allons manipuler MongoDB.
Pour apprendre les commandes basiques, je vous recommande la lecture du getting started
(http://docs.mongodb.org/manual/tutorial/getting-started/) issu de la documentation officielle de MongoDB.
Rappelez vous que la commande help permet d'afficher la liste des commandes disponibles et que vous
pouvez obtenir plus d'informations sur une commande en tapant commande.help() .
Exercices
Exercice 1
Créez une nouvelle base de données nommée inf4375 et vérifiez qu'elle est sélectionnée.
Correction:
Exercice 2
Créez une nouvelle collection nommée produits et y insérer le document suivant:
moz-code.org/uqam/demos/INF4375/archives/automne2014/semaine03/index.html#Exercice_1 3/9
02/12/2021 13:44 Alexandre Terrasa
Correction:
> db.produits.insert({
fabriquant: "Apple",
prix: 1299,
})
> db.produits.insert({
fabriquant: "Apple",
prix: 1099.99,
})
> db.produits.insert({
fabriquant: "Lenovo",
prix: 999.99,
"ultrabook": true,
})
Exercice 3
Effectuez les requêtes de lecture suivantes:
moz-code.org/uqam/demos/INF4375/archives/automne2014/semaine03/index.html#Exercice_1 4/9
02/12/2021 13:44 Alexandre Terrasa
> db.produits.find()
> db.produits.find()[0]
"_id" : ObjectId("51ddf0d334de89241d03e21e"),
"fabriquant" : "Apple",
"prix" : 1299,
"options" : [
"Intel Core i5",
"Retina Display",
Trouvez l'id du Thinkpad et faites la requête pour récupérer ce produit avec son id:
moz-code.org/uqam/demos/INF4375/archives/automne2014/semaine03/index.html#Exercice_1 5/9
02/12/2021 13:44 Alexandre Terrasa
"_id" : ObjectId("51ddf0d334de89241d03e21e"),
"fabriquant" : "Apple",
"prix" : 1299,
"options" : [
"Intel Core i5",
"Retina Display",
Exercice 4
1. Supprimez les deux produits dont le fabricant est Apple.
2. Supprimez le Lenovo X230 en utilisant uniquement son id .
Correction:
Exercice 5
Dans cet exercice, nous allons modéliser un système de facturation très simple.
moz-code.org/uqam/demos/INF4375/archives/automne2014/semaine03/index.html#Exercice_1 6/9
02/12/2021 13:44 Alexandre Terrasa
Correction:
moz-code.org/uqam/demos/INF4375/archives/automne2014/semaine03/index.html#Exercice_1 7/9
02/12/2021 13:44 Alexandre Terrasa
> db.factures.insert({
"numero_facture" : "10012A",
"client" : {
"email" : "foobar@example.com"
},
"produits" : [
"code" : "MACBOOKAIR",
"prix" : 999.99,
"quantite" : 1
},
"code" : "APPLESUPPORT",
"prix" : 149.99,
"quantite" : 1
],
"total" : 1149.98
})
> db.factures.insert({
"numero_facture" : "10013A",
"numero_facture" : "10013A",
"client" : {
"email" : "berger.jacques@uqam.ca"
},
"produits" : [
"code" : "LENOVOX230",
"prix" : 899.99,
"quantite" : 1
},
],
"total" : 899.99
})
> db.factures.update(
{'numero_facture': '10012A'},
{ $set:
'client.email': 'alex@example.com'
moz-code.org/uqam/demos/INF4375/archives/automne2014/semaine03/index.html#Exercice_1 8/9
02/12/2021 13:44 Alexandre Terrasa
moz-code.org/uqam/demos/INF4375/archives/automne2014/semaine03/index.html#Exercice_1 9/9