TP mongoDB Oriente Doc

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 6

TP : orienté document : MongoDB

MongoDB est développé depuis 2007 par MongoDB. Cette entreprise travaillait alors sur un
système de Cloud computing, informatique à données largement réparties, similaire au service
Google App Engine de Google. Sa première version considérée comme industriellement
viable a été la 1.4, en 2010.

MongoDB est une base de données open source orientée documents qui fournit de hautes
performances, une haute disponibilité, et mise à l'échelle automatique.

{
name: “mark”,
lastname: “fabian”,
email: ”[email protected]
}
Dans ce TP, nous allons aborder les préliminaires sur l'utilisation de MondoDB, notamment
son installation, son exécution, la création d'enregistrements, et les requêtes de base.

I. Installation du MongoDB
MongoDB fonctionne sur plusieurs plates-formes, que ce soit en architecture 32-bits comme
en architecture 64-bits.

Installation sur Windows :


https://www.youtube.com/watch?v=FwMwO8pXfq0

Installation sur ubnutu 14/16:


 Importer la clé qui va être utilisée dans le téléchargement des packages de Mongodb

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927

 Créer un fichier source pour mongodb : Ce fichier va informer apt sur la localisation
des packages de Mongodb pour que le gestionnaire de package (apt) puisse les
télécharger.

Version 14.04 :

echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" |


sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

Version 16.04 :

Tasnim Abar Page 1


echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" |
sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

 Mettre à jour votre cache

sudo apt-get update

 Installer mongodb

sudo apt-get install -y mongodb-org

 apt peut maintenant télécharger Mongodb


 Démarrer MongoDB

sudo service mongodb start

 Vérifier l'installation de Mongodb


Ouvrir le terminal et taper
mongo

Si Mongodb est bien installée sur votre système vous allez être redirigé vers une base de
données nommée test:
$ mongo
MongoDB shell version: 3.2.11
connecting to: test
>
NB: Si mongodb ne se lance pas, vous pouvez essayer ces commandes :

sudo rm /var/lib/mongodb/mongod.lock
mongod --repair
sudo service mongod start
mongo

II. Utilisation de MongoDB:


1- Création d'une base de données
Pour créer une base de données taper:

use nom_de_la_base
EX: use Etudiants

Tasnim Abar Page 2


2- Création des collections
Une collection est un ensemble d'objects JSON, une collection est l’équivalent
d’une table en relationnel.

Pour créer une collection il suffit de taper

db.createCollection(“nom_du_collection”)
Exemple
db.createCollection(“Classe_A”)
db.createCollection(“Classe_B”)
db.createCollection(“Classe_C”)

Pour visualiser les collections d’une base de données


show collections

3- Ajout des objets aux collections


Pour ajouter un objet à une collection on doit taper :
db.collection_name.insert({“key1”:”value1”,”key2”:”value2”,”key3”:”value3”});
Exemple
db.Classe_A.insert({“nom”:”ahmed”,”prénom”:”brahim”,”email”:”[email protected]
})
db.Classe_A.insert({“nom”:”othman”,”prénom”:”rim”,”email”:”[email protected]”})

4- Affichage des objets d'une collection


Pour afficher tous les objets d'une collection il faut taper:
db.nom_collection.find()
Exemple
db.Classe_A.find()

Pour un affichage plus propre on peut utiliser:


db.nom_collection.find().pretty()

Pour chercher une valeur bien déterminée :


db. nom_collection.find({“key”:”value_i_search”});
Exemple
db.Classe_A.find({“nom”:”Issa”})

Tasnim Abar Page 3


5- Modification des objets
Pour modifier des objets dans une collection on utilise la méthode update

db.collecton_name.update({'key':'value'},{$set:{'key':'new value'}})
Exemple
db.Classe_A.update({“nom”:”othman”},{$set:{'nom':'othmene'}})

6- Suppression d’un objet


Pour supprimer un objet on utilise remove qui va supprimer tous les objets qui contient la clé
key et la valeur value.

db.collection_name.remove({“key”:”value”})
Exemple
db.Classe_A.remove({“nom”: “ahmed”})

7- Tri des objects


Pour les objets retournés par find on utilise sort:
db.nom_collection.find().sort({“key”:1})
« le 1 indique le sens croissant et le -1 indique le sens décroissant »

8- Les dates
Lorsque l’on veut requêter une date dans Mongo, il faut créer un objet de type Date. Cela se
fait soit directement via le constructeur Date de JavaScript, soit via le wrapper Mongo
ISODate.

La fonction Date() appelée sans new retourne simplement la date courante en tant que chaine
de caractères. Les autres formes, c’est à dire new Date(xxx), new ISODate(xxx) et
ISODate(xxx) sont équivalentes et font toutes appel au wrapper ISODate. Il ne s’agit donc
que d’une question de préférence personnelle.
Exemple: db.users.find({ signupDate: { $gte: ISODate("2015-09-15") } })

III. To do 1 :
1. Décompresser le fichier dblp.json.zip
2. Dans le même répertoire, lancer l’importation du fichier :

mongoimport --host localhost:27017 --db DBLP --collection publis < dblp.json --


jsonArray

Tasnim Abar Page 4


 Dans la console mongo vérifier que les données ont été insérées
db.publis.count();
3. Trouver la liste de tous les publications publiées en 2007 ;
4. Liste de tous les articles (type « Article ») ;
5. Trouver la liste de tous les éditeurs (type « publisher »), distincts ;
6. Trouver la liste des publications de l’auteur «David Gelbart» ;
7. Trier les publications de «David Gelbart» par titre de livre et par année.
8. Trier les publications de « David Gelbart» par page de fin ;
9. Projeter le résultat sur le titre de la publication, et son type;
10. Compter le nombre de ses publications.
11. Compter le nombre de publications depuis 2007.
12. Compter le nombre de publications depuis 2007 et par type ;
13. Compter le nombre de publications par auteur et trier le résultat par ordre
décroissant ;

To DO 2: Map Reduce avec Mongo :

1. Pour chaque document de type livre, émettre le document avec pour clé « title ».

var mapFunction = function () {


if (this.type == "Book")
emit(this.title, this);
};

var reduceFunction = function (key, values) {


return {articles : values};
};

db.publis.mapReduce(mapFunction, reduceFunction, {out: "resultat" }


);
db.resultat.find();

ou

var mapFunction = function () {emit(this.title, this);};

var reduceFunction = function (key, values) {


return {articles : values};
};

var queryParam = {query:{type : "Book"}, out:"result_set"};

db.publis.mapReduce(mapFunction, reduceFunction, queryParam);

db.result_set.find();

2. Pour chacun de ses livres, donner le nombre de ses auteurs.


3. Pour chaque document ayant « booktitle » (chapitre) publié par Springer, donner
le nombre de ses chapitres.
4. Pour chaque éditeur « Springer », donner le nombre de publication par année.
5. Pour chaque clé « publisher & année » (pour ceux qui ont un publisher), donner le
nombre de publications.
6. Pour l’auteur « Toru Ishida », donner le nombre de publication par année
7. Pour chaque auteur, donner le titre de ses publications
Tasnim Abar Page 5
8. Pour chaque auteur, donner le nombre de publications associé à chaque année
9. Compter les publications de plus de 3 auteurs
10. Pour chaque éditeur, donner le nombre moyen de pages par publication

Tasnim Abar Page 6

Vous aimerez peut-être aussi