Actualités du WEB

EverWEB  MongoDb

MongoDb

 MongoDb est un système de base de données dans la mouvance NoSQL. Il est orienté documents. Son nom vient de Humongous qui veut dire énorme ou immense. L'objectif est donc de pouvoir gérer de grandes quantités de données. Comment ? Le moteur de base de données facilite l'extension (on parle de scaling) si bien que l'on pourra supporter l'accroissement de la quantité de données par l'ajout de machines.

Ceux qui viennent du monde des bases de données relationnelles sont peut être choqués de voir que les acteurs sont dupliqués. Dans le monde NoSQL, on n'hésite pas à dénormaliser le schéma de la base de données pour favoriser les performances à la lecture.  L'important est de savoir quelles requêtes seront faites pour décider du format des documents.

Installer MongoDb

 Avant d'entrer dans le vif du sujet, vous allez devoir installer mongodb.Vous pouvez trouver MongoDb en téléchargement ici:

http://www.mongodb.org/downloads

Une fois que vous avez récupéré l'archive de MongoDb qui correspond à votre OS, vous devez trouver 2 fichiers:

  • mongod(.exe)

  • mongo(.exe)

mongod sert à démarrer le moteur de base de données tandis que mongo est un interpréteur de commandes. 

 Ouvrez un premier invite de commande pour lancer le moteur de base de données:

 mongod

 Si le démarrage est réussi, vous devez voir que le processus se lance sur le port 27017 qui est le port par défaut utilisé par MongoDb.

Un message comme celui-ci vous l'indique:

waiting for connections on port 27017

Puis ouvrez un second invite de commande pour lancer l'intrepréteur de commandes 

 mongo

Vous êtes maintenant connecté à votre moteur de base de données.

Format des données

Le format JSON (JavaScript Object Notation) est utilisé pour l'insertion et la restitution des documents.  

Connaissez vous le format JSON?

Ce format se base sur 2 types d'éléments:

  • la paire clé/valeur, par exemple "nom": "Phoenix"

  • le tableau, par exemple "couleurs-primaires" : ["cyan", "jaune", "magenta"]

Un objet contient donc des paires clés/valeurs et ou des tableaux séparés par des virgules.

{"nom": "Phoenix", "prenom" : "Joaquim",

"couleurs_preferees" : ["vert", "marron"]}

Sachant que la valeur d'une paire clé/valeur peut être un objet et que le tableau peut contenir des objets, on peut ordonner les informations sur plusieurs niveaux:

{"acteur": { "nom": "Phoenix", "prenom" : "Joaquim" },

"roles" : [

{"personnage" : "Theodore", "film" : "her"},

{"personnage" : "Leonard Kraditor","film" : "Two Lovers "}

]

}

 

 Les documents ne sont pas directement stockés dans la base de données en JSON mais dans un format binaire appelé BSON.