Découvrez le fonctionnement de MongoDB

Mise en place d’une base de données NoSQL

MongoDB est l’une des bases de données NoSQL les plus populaires. Comme nous le verrons ensemble, l’ensemble du système tourne autour de la gestion de documents, ce qui tranche avec les bases de données relationnelles traditionnelles.

MongoDB comporte quelques concepts fondamentaux qu’il faut connaître :

Les Documents :

Ce sont les unités fondamentales de stockage dans MongoDB, similaires aux enregistrements dans les bases relationnelles, mais avec une structure flexible au format JSON comme vu précédemment.

Les Collections :

Ce sont des groupes de documents, on peut les comparer aux tables dans les systèmes relationnels.

Il n’y a plus de schéma prédéfini ! 

Les documents d’une même collection peuvent avoir des structures différentes. Mais cela ne veut pas dire qu’il n’y a pas de modélisation à faire. Au contraire, le succès de votre application dépend directement de la façon dont vous allez structurer vos données.

MongoDB donne de la liberté, mais attend de vous des choix explicites sur :

  • Ce que vous stockez dans vos documents ;

  • Ce que vous séparez dans plusieurs collections ;

  • Comment vous structurez vos relations en créant des références croisées ;

  • Comment vous organisez les données pour optimiser la lecture, l’écriture et les indexations.

Par exemple, si une application lit toujours ensemble le profil utilisateur + ses paramètres, vous pouvez tout stocker dans un seul document.

Si les données sont très volatiles ou partagées entre documents par contre, une approche par références sera préférable.

MongoDB propose même des outils comme le “schéma validator” pour imposer des règles de structure si vous souhaitez plus de contrôle, ou détecter les erreurs en amont.

Composants clés :

MongoDB contient plusieurs composants clés :

  • mongod : C’est le processus principal du serveur de base de données qui gère les requêtes de données et contrôle l’accès aux bases de données.

  • mongo shell : C’est Interface en ligne de commande permettant d’interagir avec une instance MongoDB.

  • MongoDB Database Tools : C’est une suite d’outils en ligne de commande pour l’administration avancée ou les tâches automatisées (ils peuvent s’exécuter dans des scripts pour automatiser les opérations).

    • mongodump / mongorestore : pour sauvegarder et restaurer des bases de données.

    • mongoexport / mongoimport : pour exporter ou importer des collections au format JSON ou CSV.

    • bsondump : pour convertir des fichiers BSON (format binaire MongoDB) en JSON lisible.

    • mongostat / mongotop : pour surveiller en temps réel l’activité du serveur MongoDB.

    • Parmi les plus connus :

    • Allez plus loin en regardant la documentation au lien suivant.

  • MongoDB Compass : Il s’agit de l’interface graphique intégrée qui offre une alternative visuelle au shell :

    • Visualisation interactive des structures de documents et analyse des types de données

    • Interface visuelle pour créer des filtres complexes sans connaissance du langage de requête MongoDB

    • Assistant graphique pour construire des pipelines d’agrégation par glisser-déposer

    • Analyse des performances et recommandations d’indexation

    • Insertion, modification et suppression de documents via une interface graphique

  • MongoDB Atlas : C’est un service d’hébergement dans le cloud de vos bases de données MongoDB, son interface graphique est très simple d’utilisation et la documentation est bien faîte.

Installer MongoDB sur différents environnements :

L’installation de MongoDB varie selon le système d’exploitation. Voici les instructions spécifiques à votre environnement pour une installation réussie.

Sur Windows :

Pour installer MongoDB sur Windows, suivez ces étapes :

  1. Téléchargez l’installateur MSI de MongoDB depuis le site officiel.

  2. Exécutez l’installateur MSI.

  3. Suivez les étapes d’installation guidées.

  4. Choisissez d’installer MongoDB comme service Windows ou simplement comme binaires.

  5. Installez MongoDB Compass (interface graphique optionnelle).

  6. Créez un répertoiredata/db dans le lecteur C ou dans le lecteur par défaut de votre système.

  7. Démarrez MongoDB en tapantmongoddans l’invite de commande.

Si la commande mongod ne fonctionne pas, vous devrez peut-être configurer les variables d’environnement système pour inclure le chemin vers les binaires MongoDB.

Sur MacOS :

MongoDB peut être installé sur MacOS de deux façons principales : via un installateur (comme homebrew que je vous recommande) ou en utilisant un fichier .tgz.

Méthode sans installateur, avec le fichier .tgz :

  1. Téléchargez le fichier .tgz de MongoDB depuis le site officiel.

  2. Ouvrez un terminal et naviguez vers l’emplacement du fichier téléchargé.

  3. Extrayez le contenu : tar xzvf mongodb-macos*.tgz.

  4. Accédez au répertoire extrait et copiez les exécutables dans/usr/local/bin.

  5. Créez un répertoire pour stocker les données :mkdir -p /data/db.

  6. Vérifiez les permissions :sudo chown -R 'id -un' /data/db.

  7. Exécutez le démon MongoDB :mongod.

Sur Linux :

Pour les distributions Linux comme Ubuntu, l’installation se fait généralement via le gestionnaire de paquets (comme apt) :

  1. Importez la clé publique du système de gestion de paquets.

  2. Créez un fichier de liste pour MongoDB.

  3. Mettez à jour la liste des paquets.

  4. Installez les paquets MongoDB.

  5. Démarrez le service : sudo service mongod start.

  6. Vérifiez les logs dans /var/log/mongodb/mongod.log pour confirmer que l’installation s’est bien déroulée.

L’emplacement d’installation par défaut est/var/lib/mongodbet le répertoire des logs est /var/log/mongodb. Ces emplacements peuvent être modifiés dans le fichier de configuration /etc/mongod.conf.

Via Docker Compose :

Si vous êtes à l’aise avec les conteneurs et Docker je vous recommande de l’utiliser (un cours est disponible ici). Cela demande de se plonger dans Docker, mais vous découvrirez un monde passionnant où vous n’aurez plus de pollution de votre machine car il n’y a plus aucune installation système. :)

Étapes pour installer MongoDB avec Docker Compose

  1. Créez un fichier nommédocker-compose.ymldans le répertoire de votre projet.

  2. Copiez-y la configuration suivante :

    version: '3.8'
    services:
      mongodb:
        image: mongo:6
        container_name: mongodb
        ports:
          - "27017:27017"
        volumes:
          - ./data/db:/data/db
        environment:
          MONGO_INITDB_ROOT_USERNAME: root
          MONGO_INITDB_ROOT_PASSWORD: example
  3. Créez un dossier local pour persister les données :

    mkdir -p data/db
  4. Lancez MongoDB :

    docker-compose up -d

MongoDB sera accessible surlocalhost:27017, avec le nom d’utilisateur root et le mot de passe example.

Accéder à MongoDB via Compass ou le shell :

Pour vous connecter via MongoDB Compass, utilisez cette URI :

mongodb://root:example@localhost:27017 

Et si vous avez installé le mongo shell (mongosh) sur votre machine hôte, vous pouvez vous y connecter ainsi :

mongosh mongodb://root:example@localhost:27017 

Configuration initiale de MongoDB :

Pour démarrer le serveur MongoDB :

  • Sur Linux :sudo service mongod start

  • Sur MacOS et Windows : mongod(le serveur tourne par défaut au démarrage sur le port 27017 après installation)

Pour arrêter le serveur :

  • Sur Linux : sudo service mongod stop

  • Sur MacOS et Windows : Utilisez Ctrl+C dans le terminal où mongod est en cours d’exécution

Pour démarrer le client MongoDB (Mongo Shell), utilisez la commandemongo. Par défaut, le shell se connecte à l’instance MongoDB en cours sur l’hôte local (localhost) et le port 27017.

Tout fonctionne ? N’hésitez pas à utiliser la documentation très bien faîte au lien suivant ICI si vous rencontrez une difficulté. 

Maintenant nous allons pouvoir importer nos données. :)

Importer les données

Nous allons maintenant importer un jeu de données déjà formaté à notre base de données. Un jeu de données OpenData est disponible sur des restaurants de New York produits par la mairie sur les résultats des inspections sanitaires. 

Pour l’importation de nos données dans le service cloud de MongoDB :

  • Téléchargez l’archive suivante : restaurants.zip.

  • Décompresser l’archive.

Nous allons créer une base de données “new_york” et une collection “restaurants”.Vous pouvez faire tout cela avec MongoDB Compass, j’aime beaucoup cette interface graphique 🙂.

Pour cela, suivez les étapes suivantes :

  1. Rendez-vous sur MongoDB Atlas pour créer la base de données. Pour cela vous aurez d’abord besoin de créer un cluster. Cela vous permet de vous attribuer une machine virtuelle pour héberger vos données. Choisissez le cluster gratuit de 512 Mo. AD_4nXfZ2rfeREUpTR-_cLBlpy1wy__7Rbcefy3rnXsSpbS1khzG3Smr-T8A-I4lE0Gdm2isnoz477FFWe3Z-72w1qo3N3NnUyAZvOBL2um8UFBpAPvOVmucP5Oc9O6E5fvn4ai-gLl3Lw?key=7n72Od3YUxXHWa8QCk8BOCNK

  2. AD_4nXdi0HUw7jMYBamNgxbZ0ErfHKfAJZfsL9YbSCU2aln5A_JXuWij87XJgzvpphCob7yxgrFil7juYDjedDeUHXr56uQ4LUhFatwwaGAMakCx-SKwtdGiIcb5rbkFP36SJpBL2bZHXQ?key=7n72Od3YUxXHWa8QCk8BOCNKAD_4nXdi0HUw7jMYBamNgxbZ0ErfHKfAJZfsL9YbSCU2aln5A_JXuWij87XJgzvpphCob7yxgrFil7juYDjedDeUHXr56uQ4LUhFatwwaGAMakCx-SKwtdGiIcb5rbkFP36SJpBL2bZHXQ?key=7n72Od3YUxXHWa8QCk8BOCNKAD_4nXdi0HUw7jMYBamNgxbZ0ErfHKfAJZfsL9YbSCU2aln5A_JXuWij87XJgzvpphCob7yxgrFil7juYDjedDeUHXr56uQ4LUhFatwwaGAMakCx-SKwtdGiIcb5rbkFP36SJpBL2bZHXQ?key=7n72Od3YUxXHWa8QCk8BOCNKAD_4nXdi0HUw7jMYBamNgxbZ0ErfHKfAJZfsL9YbSCU2aln5A_JXuWij87XJgzvpphCob7yxgrFil7juYDjedDeUHXr56uQ4LUhFatwwaGAMakCx-SKwtdGiIcb5rbkFP36SJpBL2bZHXQ?key=7n72Od3YUxXHWa8QCk8BOCNK

    Attribuez une adresse IP autorisée pour la connexion (la votre sera détectée automatiquement) ou autorisez toutes les connexions à votre base de données. N’oubliez pas d’ajouter un utilisateur à votre base de données avec un username et un mot de passe. Suivez les étapes puis créez la base de données “new_york” et la collection “restaurants”.

  3. AD_4nXfoWDxYc0-NlYW7pW7jR1Pg1wH-khOKORPHVnX3xBDs0jFSTeYfjQcvh28ILL70qQZO01w7Mec7sLS4o0fmVVzuHs8Rhd4owKA6oGjJJBJozkVGgh6YwcvDM0U3b34-vOAtpFo_Ww?key=7n72Od3YUxXHWa8QCk8BOCNKAD_4nXfoWDxYc0-NlYW7pW7jR1Pg1wH-khOKORPHVnX3xBDs0jFSTeYfjQcvh28ILL70qQZO01w7Mec7sLS4o0fmVVzuHs8Rhd4owKA6oGjJJBJozkVGgh6YwcvDM0U3b34-vOAtpFo_Ww?key=7n72Od3YUxXHWa8QCk8BOCNKAD_4nXfoWDxYc0-NlYW7pW7jR1Pg1wH-khOKORPHVnX3xBDs0jFSTeYfjQcvh28ILL70qQZO01w7Mec7sLS4o0fmVVzuHs8Rhd4owKA6oGjJJBJozkVGgh6YwcvDM0U3b34-vOAtpFo_Ww?key=7n72Od3YUxXHWa8QCk8BOCNKAD_4nXfoWDxYc0-NlYW7pW7jR1Pg1wH-khOKORPHVnX3xBDs0jFSTeYfjQcvh28ILL70qQZO01w7Mec7sLS4o0fmVVzuHs8Rhd4owKA6oGjJJBJozkVGgh6YwcvDM0U3b34-vOAtpFo_Ww?key=7n72Od3YUxXHWa8QCk8BOCNK

    Lancez l’application MongoDB Compass sur votre ordinateur et connectez-vous à votre cluster. Pour cela vous devez récupérer l’adresse de connexion à votre base de données sur le site de MongoDB Atlas. Vous la retrouverez en appuyant sur le bouton “connect” puis en indiquant que vous souhaitez vous connecter avec Compass.

  4. Copiez l’adresse de connexion récupérée dans MongoDB Atlas et collez-les dans votre application MongoDB Compass (n’oubliez pas de réutiliser votre username et mot de passe).

  5. AD_4nXf96X458Rf-LIk0I7rkNEsLOIwVVAkG7VDUGC6FJ7Z8CtS5f-lZw4LX5TwoJDm41w6TH8zG8Q4gTGtMuaWIlmT51LUx9uxJVoQN71fKtPlzL3IlSo7Y8r-AV2ojAKAATZUMjWmIpQ?key=7n72Od3YUxXHWa8QCk8BOCNKAD_4nXf96X458Rf-LIk0I7rkNEsLOIwVVAkG7VDUGC6FJ7Z8CtS5f-lZw4LX5TwoJDm41w6TH8zG8Q4gTGtMuaWIlmT51LUx9uxJVoQN71fKtPlzL3IlSo7Y8r-AV2ojAKAATZUMjWmIpQ?key=7n72Od3YUxXHWa8QCk8BOCNKAD_4nXf96X458Rf-LIk0I7rkNEsLOIwVVAkG7VDUGC6FJ7Z8CtS5f-lZw4LX5TwoJDm41w6TH8zG8Q4gTGtMuaWIlmT51LUx9uxJVoQN71fKtPlzL3IlSo7Y8r-AV2ojAKAATZUMjWmIpQ?key=7n72Od3YUxXHWa8QCk8BOCNKAD_4nXf96X458Rf-LIk0I7rkNEsLOIwVVAkG7VDUGC6FJ7Z8CtS5f-lZw4LX5TwoJDm41w6TH8zG8Q4gTGtMuaWIlmT51LUx9uxJVoQN71fKtPlzL3IlSo7Y8r-AV2ojAKAATZUMjWmIpQ?key=7n72Od3YUxXHWa8QCk8BOCNK

    Enfin importez les données via MongoDB Compass dans votre base de données Atlas en cliquant sur “add data” et en sélectionnant votre fichier restaurants.json.

Dans la vidéo suivante vous trouverez le déroulé pas à pas de ces étapes. 

Toutes vos données sont désormais importées dans votre base de données cloud sur MongoDB Atlas.

À vous de jouer !

Vous allez importer les données comme nous l’avons fait dans ce chapitre a fin de créer vos premières requêtes dans le chapitre suivant. Suivez les consignes suivantes et je vous retrouve après pour la suite !

 

Consignes :

  1. Installez MongoDB et MongoDB Compass.

  2. Créez-vous compte sur MongoDB Atlas.

  3. Créez une base de données new-york et une collection restaurants.

  4. Téléchargez le dataset des restaurants à New York.

  5. Importez ces données dans votre collection.

En résumé 

  • MongoDB est une base de données NoSQL orientée documents. Contrairement aux bases relationnelles, elle utilise des documents JSON pour stocker les données, ce qui permet une grande flexibilité dans la structure des données.

  • Les collections sont l'équivalent des tables dans les bases de données relationnelles. Elles sont utilisées pour organiser les données.

  • Les documents sont des objets JSON qui contiennent des champs clé-valeur, et ils peuvent avoir des structures variées au sein de la même collection.

  • MongoDB Atlas est le service cloud de MongoDB. Il offre un hébergement sécurisé, des outils d'analyse et de sauvegarde simples à utiliser.

  • MongoDB Compass est une interface graphique conviviale qui facilite la gestion des bases de données MongoDB (visualisation, requêtes, et import/export simple des données).

Nous avons importé nos données, explorons-les ensemble dans le prochain chapitre !

Et si vous obteniez un diplôme OpenClassrooms ?
  • Formations jusqu’à 100 % financées
  • Date de début flexible
  • Projets professionnalisants
  • Mentorat individuel
Trouvez la formation et le financement faits pour vous