MongoDB est une base de données Open Source orientée document. Contrairement à une base de données relationnelle classique dans laquelle les données sont organisées d’après un schéma (tables, champs, types de données) et mises en relation les unes avec les autres, on stocke les données dans une base MongoDB dans un document dans le style JSON, c’est à dire sous la forme clé:valeur.
Sommaire
- 1 Pourquoi utiliser MongoDB ?
- 2 Installer MongoDB sur Windows
- 3 Installer MongoDB sur macOS
- 4 Installer MongoDB sur Raspberry Pi
- 5 Premiers pas avec l’environnement MongoDB
Pourquoi utiliser MongoDB ?
Le principal avantage des bases de données NoSQL est l’absence de schéma. Il n’y a pas besoin de définir les tables, les champs de données (ni de type de donnée) et les relations entre les tables (champs). Une collection (l’équivalent d’une table) peut contenir différents documents. Chaque document pouvant avoir un nombre de champ, une taille, un contenu différent d’un document à l’autre. Cette architecture présente de nombreux autres avantages :
- La structure d’un document peut évoluer, la structure n’est pas figée. Il suffit d’actualiser un document pour ajouter / supprimer une information. C’est beaucoup plus souple que de modifier les champs d’une base de données relationnelle.
- Il n’y a pas de liaisons complexes entre les documents.
- MongoDB est capable de faire des recherches complexes aussi simplement et efficacement qu’un requête SQL.
- MongoDB est conçue pour supporter la montée en charge. MongoDB est adaptée aux très gros projets informatiques. Pour en savoir plus sur les performances, lisez cet article très complet publié sur le blog d’Ippon Technology.
Installer MongoDB sur Windows
Version de Windows testée : 10 (32 bits)
Avant de télécharger la version qui correspond à votre système, exécutez cette commande
C:\>wmic os get osarchitecture OSArchitecture 64-bit C:\>
Les versions 32 bit de MongoDB ne supportent que les bases de données de moins de 2GB. C’est largement suffisant pour faire des tests ou de petits développements personnels.
Téléchargez la dernière version de MongoDB depuis cette adresse https://www.mongodb.org/downloads depuis l’onglet Community Server.
Lancez l’installeur
On peut tout installer (Complete)
Ou uniquement les composants désirés (Custom). Compte tenu de la taille nécessaire (322MB), autant tout installer. Rien ne vous empêche de choisir un autre répertoire de d’installation. Depuis l’option Custom, cliquez sur Browse… pour indiquer (et créer si besoin) un autre dossier d’installation.
L’installation est terminée, quittez l’installeur en cliquant sur Finish.
Les fichiers sont installés dans un répertoire MongoDB dans Progammes (Program Files). Un sous-répertoire est créé pour chaque version. Tous les programmes Mongo se trouverons par exemple au chemin suivant :
C:\Program Files\MongoDB\Server\3.2\bin
Maintenant, il faut ajouter ce chemin dans les variables d’environnement. Ouvrez le menu démarré et saisissez variable. Dans la liste des résultats, ouvrez “Modifier les variables d’environnement système”.
Dans la boîte de dialogue qui s’ouvre, ajoutez un point-virgule suivi du chemin vers les binaires. Validez en appuyant sur OK.
Maintenant, ouvrez le poste de travail et créez un répertoire data à la racine puis un répertoire db à l’intérieur. Vous pouvez aussi exécuter cette commande dans l’Invite de commande. On en profite pour créer un répertoire pour les journaux (log).
md \data\db md \data\log
Démarrer MongoDB
Exécutez la commande suivante (sans oublier de corriger le chemin qui correspond à votre configuration) pour démarrer le serveur MongoDB. Il faut mettre le chemin entre guillemets s’il contient des espaces. Il faut indiquer le chemin vers la base de données (au premier lancement).
"C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe" --dbpath C:\data\db --storageEngine=mmapv1
Au premier lancement de MongoDB, vous devrez autoriser l’accès depuis le pare-feu Windows.
La base de données est démarrée et prête à recevoir des connexions de clients sur le port 27017 par défaut.
Créer un fichier de configuration mongod.cfg
On peut aussi aller encore plus loin et créer un fichier de configuration mongod.cfg dans le répertoire Bin.
Ouvrez un éditeur de texte et collez cette configuration de base (adaptez les chemins et le storageEnegine qui correspond à votre configuration).
Enregistrez au format UTF-8. Si vous ne disposez pas de droits administrateur, enregistrez le fichier dans les documents puis déplacez le manuellement dans le répertoire Bin de MongoDB.
Une fois que tout est prêt, lancez mongod comme ceci.
"C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe"
Pour connaître en détail toutes les options disponibles, allez sur cette page https://docs.mongodb.com/v3.0/reference/configuration-options/
Installer le service MongoDB
Maintenant, nous voudrions bien que MongoDB se lance automatiquement au démarrage de Windows. C’est très facile, il suffit d’installer le service.
Ouvrez un Invite de Commande en mode Administrateur
Créer le service à l’aide de sc.exe
La première méthode consiste à utiliser sc.exe. Exécutez la commande
sc.exe create MongoDB binPath= "C:\mongodb\bin\mongod.exe --service --config=\"C:\mongodb\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
Le message [sc] createService réussite(s) est renvoyée si le service a correctement été ajouté.
Supprimer le service avec sc.exe
La commande suivante permet de supprimer le service
sc.exe delete
Ce qui donne par exemple dans notre cas
sc.exe delete MongoDB
Créer le service avec l’option install
La commande mongod accepte l’option –install pour installer MongoDB comme un service Windows ou –remove pour désinstaller le service ainsi que
–install : lance l’installation de MongoDB comme un service Windows
–remove : supprime le service Windows
–serviceName : Nom du service Windows (uniquement des caractères alphanumériques sans espace)
–serviceDisplayName : (optionnel) Nom affiché dans la liste des services. Mettre en guillemets si le nom contient des espaces.
–serviceDescription : (optionnel) courte description sur le service. Mettre en guillemets s’il y a des espaces.
–logpath : (obligatoire pour install) chemin vers le journal
–journal (conseillé) : active le journal
Ce qui donne par exemple
C:\MongoDB\bin\mongod.exe --install --serviceName "MongoDB" --serviceDisplayName "MongoDB" --serviceDescription "MongoDB sur le port 27017" --journal --logpath c:\data\log\mongo.log
Supprimer le service MongoDB
Pour supprimer le service il suffit d’exécuter cette commande.
Comment vérifier que le service fonctionne
Depuis le menu démarré, recherchez et lancez le gestionnaire de Services.
Le service MongoDB (selon le nom attribué) est présent dans la liste mais il ne démarre pas automatiquement après l’installation.
Pour cela faite un clic droit puis Démarrer
Maintenant il est en cours d’exécution
Maintenant vous pouvez démarrer un client avec la commande mongo.
Installer MongoDB sur macOS
Version macOS testée : 10.11.6 (El Captain) sur un Mac Mini 2011.
MongoDB s’installe sur macOS à l’aide de Brew. Brew est un gestionnaire de paquets pour Mac (page officielle du projet).
Ouvrez un Terminal et collez cette commande
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Répondez aux questions pour terminer l’installation de Brew sur votre Mac.
Un fois installé, exécutez cette commande pour installer MongoDB.
brew install mongodb
C’est fait.
Maintenant vous devez créer un répertoire pour les données
mkdir -p /data/db
Allez sur le finder et attribuez les droits de lecture et d’écriture (pour tous les utilisateurs) au dossier data. Cmd + I puis identifiez vous en appuyant sur le cadenas et enfin changez les droits.
Maintenant, démarrez avec l’option –dbpath au premier démarrage
mongod --dbpath /data/db
Installer MongoDB sur Raspberry Pi
Sur Raspberry Pi, MongoDB est encore limité à la version 32 bits, et donc par conséquent à une base de données de 2GB maximum. Il sera donc réservé à des tests, de l’apprentissage ou de petites applications
sudo apt-get update sudo apt-get upgrade sudo apt-get install mongodb-server
Les fichiers binaires se trouvent dans le répertoire /usr/bin/.
Les fichiers de données se trouvent dans le dossier /var/lib/mongodb/
Le service MongoDB démarre dès la fin de l’installation. Pour vérifier s’il est bien démarré, exécutez la commande
sudo service --status-all
Un plus entre les crochets signifie que le service est bien lancé.
Ou sudo service mongodb status
pi@raspberrypi:~ $ sudo service mongodb status ● mongodb.service - An object/document-oriented database Loaded: loaded (/lib/systemd/system/mongodb.service; enabled) Active: inactive (dead) since jeu. 2016-11-03 14:59:52 CET; 2min 10s ago Docs: man:mongod(1) Process: 458 ExecStart=/usr/bin/mongod --config /etc/mongodb.conf (code=exited, status=0/SUCCESS) Main PID: 458 (code=exited, status=0/SUCCESS) nov. 03 14:50:19 raspberrypi systemd[1]: Started An object/document-oriented database. nov. 03 14:50:22 raspberrypi mongod[458]: all output going to: /var/log/mongodb/mongo...og nov. 03 14:59:52 raspberrypi systemd[1]: Stopping An object/document-oriented database... nov. 03 14:59:52 raspberrypi systemd[1]: Stopped An object/document-oriented database. Hint: Some lines were ellipsized, use -l to show in full.
S’il n’est pas démarré, exécutez cette commande
sudo service mongodb start
Pour interrompre le service
sudo service mongodb stop
Vous pouvez maintenant accéder à la base depuis le client mongo.
Premiers pas avec l’environnement MongoDB
MongoDB est constitué d’une partie serveur (mongod) et d’un client (mongo) que nous découvrirons plus en détail dans la seconde partie de cette série d’articles. Plusieurs utilitaires sont aussi disponibles (monitoring, import/export, performance…).
Programme (commande) | Fonction |
mongod | Le serveur de base de données MongoDB |
mongo | Client. Permet d’exécuter toutes les commandes Mongo depuis un Shell |
mongostat, mongotop | Utilitaires de monitoring |
mongodump, mongorestore, mongoexport, mongoimport | Utilitaires d’import / export |
bsondump, mongofiles, mongooplog, mongoperf | Utilitaires divers |
Sources
Avez-vous aimé cet article ?