[Tuto] Présentation et installation de MongoDB

Logo MongoDBMongoDB est une base de données NoSQL performante de type document. Elle manipule des documents qui sont des objets au format BSON (JSON Binaire), ces documents sont stockés dans des collections.

MongoDB est shéma-less, c’est à dire que la structure des documents est modifiable sans reconfiguration de la base ce qui rend MongoDB très flexible. Ainsi, vous pouvez faire évoluer la base de données en même temps que l’application, notamment avec un processus Agile.

Le langage natif de MongoDB est le JavaScript, il n’y a pas de langage particulier de manipulation de données comme le SQL. MongoDB est donc parfait pour faire du full stack en JavaScript ( MongoDB, Angular.JS, Node.JS par exemple).

D’un point de vue serveur, MongoDB peut être monté en cluster pour augmenter les performances et / ou pour une haute disponibilité avec un système de réplication natif.

Rapprochement entre un SGBD Relationnel et MongoDB

Les collections peuvent êtres comparé aux tables et les documents aux enregistrements d’une base de données relationnelle. Mais du fait que MongoDB est schéma-less, les champs d’un enregistrement peuvent êtres différents d’un enregistrement à l’autre. En effet des champs peuvent êtres ajoutés, supprimés ou modifiés à tout moment.

Un seul champ est en commun avec tous les documents, le champ _id. C’est un champ obligatoire généré automatiquement par MongoDB, il s’agit d’un index unique pour identifier un document.

Les documents MongoDB, sont représentés sous la forme d’un objet JSON, composé de paires clé/valeur. La clé est le nom du champ et la valeur son contenu.

Installation

Sur Linux

Nous allons installer la version officielle des dépôts MongoDB, afin de bénéficier de la dernière version stable.
Commencez par ajouter la clé GPG et le dépôt officiel MongoDB :

> sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10
> echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list
> sudo apt-get update

Enfin vous pouvez installer MongoDB avec apt :

> sudo apt-get install mongodb-org

Vous pouvez vérifier que le service MongoDB (mongod) est démarré avec la commande :

> service mongod status
mongod start/running, process 1200

Sur Windows

Commencez par vous rendre sur le site officiel pour télécharger MongoDB. Une foi téléchargé exécutez l’installeur et suivez les instructions.
Installation MongoDB

Après l’installation, vous devez ajouter le dossier binaire MongoDB dans les variables d’environnement de Windows (C:\Program Files\MongoDB 2.6 Standard\bin).
MongoDB-Install4

Par défaut, les bases de données MongoDB seront stockées dans un dossier à la racine du disque système (C:/). Vous devez créer un dossier nommé data à la racine du disque (C:/data) dans lequel vous devez créer un dossier db qui contiendra les bases de données (C:/data/db) et un dossier logs pour les logs MongoDB (C:/data/logs).

Une fois la variable d’environnement ajoutée et les dossiers créés, vous pouvez installer le service MongoDB, pour cela ouvrez une console en tant qu’administrateur et tapez :

> mongod --install --logpath "C:\data\logs\server.log"

Ensuite, vous pouvez démarrer le service avec la commande :

> net start MongoDB
Le service MongoDB a démarré.

Premier pas avec l’interpréteur de commandes MongoDB

MongoDB possède un interpréteur de commandes JavaScript pour effectuer des opérations sur ses bases de données.
Pour lancer l’interpréteur MongoDB ouvrez une console et tapez :

> mongo
MongoDB shell version: 2.6.5
connecting to: test

Vous êtes maintenant connecté au serveur MongoDB en localhost sur le port par défaut (27017).
Notez que vous pouvez vous connecter à un serveur distant en indiquant l’hôte (- -host) et le port (- -port).

Manipulation de bases de données

Afficher les bases de données existantes :

> show dbs
admin  (empty)
local  0.078GB
test   0.078GB

Créer et changer de base de données :

> use mydb
switched to db mydb

MongoDB crée la base de données si elle n’existe pas.
Vous pouvez vérifier la base de données courante avec :

> db
mydb

Notez que la nouvelle base de données n’est que temporaire tant que vous n’y faites aucune insertion. Pour vérifier faite un show dbs :

> show dbs
admin  (empty)
local  0.078GB
test   0.078GB

Supprimer une base de données :

> use mydb
switched to db mydb
> db.dropDatabase();
{ "dropped" : "mydb", "ok" : 1 }

Créer une collection et insérer des documents

Du fait que MongoDB utilise des schémas dynamiques (schéma-less), il n’y a pas de structure à déclarer pour vos documents. De plus, les collections sont créées implicitement par MongoDB lors de la première insertion.

Exemple, ajout de deux utilisateurs dans une collection « users » :

> db
mydb
> db.users.insert({name:"mongo", firstName:"rango"})
WriteResult({ "nInserted" : 1 })
> db.users.insert({name:"perrier", firstName:"damien", isAdmin:true})
WriteResult({ "nInserted" : 1 })

Comme vous pouvez le voir les documents sont insérés sous forme d’objet JSON et il n’y a aucune contrainte sur la structure et le type des valeurs.

Afficher les collections existantes :

> show collections
system.indexes
users

Afficher les documents d’une collection :

> db.users.find()
{ "_id" : ObjectId("54621af692418dbc6408f354"), "name" : "mongo", "firstName" : "rango" }
{ "_id" : ObjectId("54621b4892418dbc6408f356"), "name" : "perrier", "firstName" : "damien", "isAdmin" : true }

Conclusion

MongoDB est une très bonne base de données NoSQL orientée document. Elle est très flexible avec ces schémas dynamiques ce qui permet de faire évoluer la base de données en même temps que l’application de façon simple.
Du fait que MongoDB utilise JavaScript en natif, elle est donc parfaite pour une utilisation full JavaScript, avec Node.JS par exemple.
En contrepartie, vous ne pouvez utiliser SQL, les jointures ou les transactions multi-documents avec MongoDB.

Sachez que je vous ai donné juste un aperçu de l’utilisation de l’interpréteur de commandes MongoDB, je ne peux que vous conseillez d’aller voir la très bonne doc officielle si vous désirez en savoir plus.

Dans de prochains articles, je vous montrerai l’utilisation de MongoDB de façon plus poussée avec Node.js.

Une réflexion au sujet de « [Tuto] Présentation et installation de MongoDB »

  1. Ping : [TUTO] Utiliser MongoDB avec Node.js | Webiose

Laisser un commentaire