Accéder au contenu principal

Qu'est-ce que MongoDB ? Concepts clés, cas d'utilisation et meilleures pratiques

Ce guide explique MongoDB, son fonctionnement, les raisons pour lesquelles les développeurs l'adorent et comment commencer à utiliser cette base de données NoSQL flexible.
Actualisé 25 mars 2025  · 15 min de lecture

Si vous avez déjà été confronté à des schémas de base de données rigides ou à des problèmes de mise à l'échelle, vous n'êtes pas le seul. C'est là que MongoDB intervient. En tant que base de données NoSQL flexible et performante, MongoDB a changé la façon dont les développeurs envisagent le stockage et le travail avec les données. Je me souviens encore de la première fois où je l'ai utilisé : l'interrogation de documents de type JSON m'a semblé intuitive. 

Dans cet article, je vais expliquer ce qu'est MongoDB, pourquoi il est si populaire et comment vous pouvez l'utiliser.

Qu'est-ce que MongoDB ?

MongoDB est une base de données NoSQLn open-source conçue pour travailler avec des données orientées documents. Au lieu des lignes et colonnes traditionnelles, il stocke les données dans des documents flexibles de type JSON, ce qui le rend idéal pour les applications qui doivent évoluer rapidement.

Le nom "MongoDB" vient de humongous, ce qui indique qu'il est conçu pour traiter des quantités massives de données.  Il a été lancé en 2009 par les gens de 10gen (aujourd'hui MongoDB Inc.) et n'a cessé de croître depuis. MongoDB est parfait pour gérer de grands ensembles de données distribuées tout en conservant des performances élevées.

MongoDB se décline en plusieurs versions, en fonction de vos besoins. La version gratuite Community Edition est idéale pour les petits projets. Et si vous ne voulez pas vous occuper de l'infrastructureructure, MongoDB Atlas est un service cloud entièrement géréed qui fonctionne sur AWS, Google Cloud et Azure. Cette flexibilité a vraiment aidé MongoDB à prendre son essor dans différents secteurs d'activité.

> Si vous ne connaissez pas MongoDB et les bases de données NoSQL, consultez ce tutoriel NoSQL pour débutants afin de comprendre les concepts de base avant d'aller plus loin. Vous pouvez également explorer les cours plus généraux Introduction à NoSQL et NoSQL Concepts pour voir comment MongoDB s'intègre dans l'écosystème NoSQL plus large.

Caractéristiques de MongoDB

MongoDB est doté de fonctionnalités qui en font un choix de premier ordre pour les développeurs qui travaillent sur des applications modernes à forte intensité de données. Passons-les en revue dans cette section.

Stockage orienté documents

MongoDB stocke les données dans des collections de documents de type JSON en utilisant un format appelé BSON (Binary JSON). 

JSON est un format textuel lisible par l'homme qui prend en charge les types de données de base tels que les chaînes de caractères, les nombres et les tableaux. BSON, son équivalent binaire, étend JSON avec des types supplémentaires comme les dates, les données binaires et des formats numériques précis (par exemple, entiers, flottants).

Alors que JSON est idéal pour la lisibilité, BSON est optimisé pour le stockage, la vitesse et le traitement avancé des données, ce qui en fait le format préféré de MongoDB.  

Lorsqu'ils interagissent avec MongoDB, les développeurs travaillent avec les structures de données natives de leur langage de programmation (par exemple, les objets JavaScript ou les dictionnaires Python). Le pilote MongoDB se charge de la conversion entre ces structures et BSON, ce qui garantit un stockage et une récupération transparents des données.

Une image montrant comment MongoDB stocke les données au format BSON.

Comment MongoDB stocke les données sous forme de BSON. Source de l'imagee : MongoDB

Conception sans schéma

MongoDB organise les données en collections et en documents :

  • Une collection regroupe des documents apparentés, à l'instar d'un tableau mais avec plus de souplesse. Les collections n'imposent pas de schéma, de sorte que les documents peuvent avoir des structures et des champs différents. Les collections existent dans les bases de données MongoDB et chaque base de données peut contenir plusieurs collections.
  • Documents est l'unité de base des données, constituée de paires champ-valeur. Les documents peuvent contenir des chaînes de caractères, des nombres, des dates, des tableaux et même d'autres documents intégrés. Cela permet de créer des modèles de données sophistiqués représentant des relations complexes dans un seul document, ce qui correspond à la façon dont les objets sont structurés dans la plupart des langages de programmation.

La conception sans schéma de MongoDB est l'une de ses caractéristiques les plus puissantes, offrant une flexibilité exceptionnelle pour le traitement de données diverses et évolutives. 

Contrairement aux bases de données relationnelles traditionnelles, où l'ajout d'un nouveau champ nécessite de modifier toute la structure du tableau, MongoDB permet aux documents d'une même collection d'avoir des champs et des structures complètement différents. Cela élimine le besoin de schémas rigides et facilite le stockage de données variées sans imposer l'uniformité.

Examinons de plus près le fonctionnement des modifications de schéma dans MongoDB par rapport aux bases de données relationnelles traditionnelles :

Dans une base de données relationnelle, si vous souhaitez ajouter un nouveau champ (par exemple, discount_price) à un tableau products, vous devez :

  1. Modifiez le schéma du tableau pour ajouter la nouvelle colonne.
  2. Mettre à jour chaque ligne, même si la plupart des lignes n'utiliseront pas le nouveau champ, ce qui conduit à des tableaux clairsemés avec de nombreuses colonnes vides.

Dans MongoDB, vous pouvez simplement ajouter le champ discount_price aux seuls documents pertinents de la collection products. Par exemple :

// Document 1
{
  "_id": 1,
  "name": "Laptop",
  "price": 1200
}

// Document 2
{
  "_id": 2,
  "name": "Smartphone",
  "price": 800,
  "discount_price": 750  // New field added only where needed
}

Cette flexibilité est inestimable dans les environnements en évolution rapide où les exigences en matière de données changent fréquemment. Il permet aux développeurs de s'adapter rapidement sans temps d'arrêt ni migrations complexes, ce qui rend MongoDB idéal pour le développement agile et les applications modernes.

Haute performance

MongoDB est conçu pour le stockage et la récupération de données à haute performance, ce qui le rend idéal pour les applications qui exigent vitesse et évolutivité. 

L'une de ses principales caractéristiques est l'utilisation de fichiers mappés en mémoire, qui permettent au système d'exploitation de gérer efficacement la mise en cache, en réduisant la latence et en améliorant les opérations de lecture/écriture. MongoDB prend également en charge différents types d'indexation, notamment les index à champ unique, les index composés, les index géospatiaux, les index textuels et les index hachés, afin d'accélérer les performances des requêtes.

MongoDB offre un moteur de stockage en mémoire pour les cas d'utilisation à très faible latence, permettant un accès plus rapide aux données en gardant tout en mémoire vive. En outre, l'optimiseur de requêtes de MongoDB garantit une exécution efficace des requêtes en sélectionnant automatiquement les meilleurs index et plans d'exécution. 

Ces caractéristiques, combinées à la mise à l'échelle horizontale via le sharding, font de MongoDB un choix robuste pour les applications à haut débit telles que les analyses en temps réel, les applications mobiles et les systèmes IoT.

Comment démarrer avec MongoDB

Si vous ne connaissez pas MongoDB, ne vous inquiétez pas : la configuration est simple et vous pouvez choisir entre une installation locale et une option cloud. Nous allons explorer ces options ici.

Installation de MongoDB

1. Installez MongoDB localement : Vous pouvez installer MongoDB Community Edition sur votre machine locale en la téléchargeant surm le site officiel de MongoDB. Les instructions d'installation sont disponibles pour Windows, macOS et Linux, et le processus d'installation ne comporte généralement que quelques étapes. Cette option vous permet de contrôler totalement votre environnement et est idéale pour le développement et les tests.

2. Utilisez MongoDB Atlas (basé sur le cloud) : Si vous préférez renoncer à l'installation locale, MongoDB Atlas est une excellente alternative . Il s'agit du service cloud entièrement géré de MongoDB, et il fonctionne sur AWS, Azure et Google Cloud. Atlas gère l'infrastructure pour vous - les sauvegardes, la mise à l'échelle et les mises à jour sont toutes gérées automatiquement. De plus, le niveau gratuit est généreux, ce qui permet de démarrer facilement et sans frais.

Que vous préfériez le contrôle d'une installation locale ou la commodité du cloud, MongoDB vous permet de choisir facilement la voie qui convient à votre flux de travail.

Se connecter à MongoDB

Une fois MongoDB installé, l'étape suivante consiste à s'y connecter, soit pour effectuer des tests rapides dans le shell, soit pour l'intégrer à vos applications.

Utilisation du shell Mongo :

Vous pouvez vous connecter à MongoDB à l'aide du shell Mongo, une interface de ligne de commande permettant d'interagir avec la base de données. Il suffit d'exécuter mongosh dans votre terminal pour lancer le shell.

mongosh

Cela permet de démarrer le shell et de vous connecter à votre instance locale de MongoDB par défaut.

Connexion à partir d'une application :

Pour le développement d'applications, vous pouvez vous connecter via des langages de programmation comme Python, JavaScript (Node.js) ou Java en utilisant les pilotes officiels de MongoDB. Par exemple, en Python, vous pouvez utiliser la bibliothèque pymongo pour établir une connexion :

from pymongo import MongoClient

uri = "your_mongodb_connection_string"
client = MongoClient(uri)

try:
    # Test the connection
    client.admin.command('ping')
    print("Connected to MongoDB!")
except Exception as e:
    print(e)
finally:
    client.close()

Remplacez "your_mongodb_connection_string" par votre URI de connexion locale ou Atlas. Une fois connecté, vous êtes prêt à insérer et à interroger des documents.

> Travailler en Python ? Ce cours Introduction à l'utilisation de MongoDB pour la science des données avec Python permet d'apprendre à connecter, interroger et analyser les données MongoDB à l'aide de Python.

Commandes de base de MongoDB

MongoDB fournit un ensemble de commandes pour interagir avec les bases de données, les collections et les documents. Voici quelques commandes de base pour vous aider à démarrer :

  • Passez à une base de données :
use myDatabase

Cette commande permet de basculer vers une base de données nommée myDatabase. S'il n'existe pas encore, MongoDB le créera lorsque vous ajouterez des données pour la première fois.

  • Créez une collection :
db.createCollection("myCollection")

Crée une nouvelle collection appelée myCollection dans la base de données actuelle.

  • Insérer un document :
db.myCollection.insertOne({ name: "Alice", age: 30 })

Ajoute un nouveau document à la collection myCollection.

  • Recherchez des documents :
db.myCollection.find({ age: { $gt: 25 } })

Récupère tous les documents dont le champ age est supérieur à 25.

Ces commandes ne sont que la partie émergée de l'iceberg -ongoDB possède de puissantes capacités d'interrogation, d'indexation et d'agrégation. Vous pouvez consulter la liste complète des commandess dans la documentation officielle de MongoDB

> Si vous recherchez un guide pratique plus approfondi, ce tutoriel MongoDB sur la mise en place et l'interrogation des bases de données MongoDB vous guidera dans vos recherches.e tutoriel MongoDB sur la configuration et l'interrogation des bases de données MongoDB vous guide pas à pas dans la configuration et les opérations de base.l'installation et les opérations de base étape par étape.

Meilleures pratiques pour l'utilisation de MongoDB

Vous voulez tirer le meilleur parti de MongoDB ? Ces bonnes pratiques peuvent vous aider à améliorer les performances, à éviter les pièges les plus courants et à créer des applications qui évoluent en douceur.

Indexation

Une indexation correcte est essentielle pour optimiser les performances de MongoDB. Voici quelques stratégies clés pour garantir l'efficacité de vos index :

  • Utilisez des index composés : Au lieu de créer des index distincts pour chaque champ, combinez les champs fréquemment interrogés en un seul index composé. Par exemple, si vous effectuez souvent des recherches sur last_name et first_name, un index composé sur les deux champs sera plus efficace.
  • Évitez la surindexation : Si les index améliorent les performances de lecture, ils augmentent la charge de travail des opérations d'écriture et consomment de l'espace de stockage. Contrôlez régulièrement les index inutilisés et supprimez-les pour maintenir l'efficacité.
  • Utilisez des index partiels : Réduisez la taille de l'index et les frais généraux en indexant uniquement les documents qui correspondent à des critères spécifiques - par exemple, n'indexez que les utilisateurs actifs ou les documents dans lesquels un certain champ existe.
  • Optimisez pour les champs de faible cardinalité : Soyez prudent lorsque vous indexez des champs comportant peu de valeurs uniques (par exemple, status ou gender). Les index composés peuvent être utiles, mais assurez-vous que les champs combinés ont une cardinalité élevée.
  • Surveillez l'utilisation de l'index : Utilisez des outils tels que MongoDB Compass ou Atlas Data Explorer pour visualiser l'utilisation des index et identifier les index inutilisés. Cela permet de libérer des ressources et d'améliorer les performances.

> Vérifiez les meilleures pratiques de MongoDB en matière de performances pour l'indexation.Consultez les meilleures pratiques de MongoDB en matière de performances pour l'indexation afin d'approfondir les stratégies qui fonctionnent. pour approfondir les stratégies qui fonctionnent.

Modélisation des données

Une modélisation efficace des données est essentielle pour optimiser les performances et l'évolutivité de MongoDB. Le modèle orienté document de MongoDB offre une certaine souplesse dans la structuration des données, mais nécessite une planification minutieuse pour garantir l'efficacité. 

Voici quelques bonnes pratiques pour la modélisation des données dans MongoDB :

  • Utilisez les documents incorporés pour les données qui sont fréquemment consultées ensemble ou qui ont une relation de type un à un ou un à plusieurs. Par exemple, le fait de stocker le profil d'un utilisateur ainsi que ses commandes récentes dans un seul document peut réduire la nécessité d'effectuer des jointures et améliorer les performances des requêtes.
  • Utilisez les références (linking) pour les données qui sont moins fréquemment consultées ensemble ou qui ont une relation de plusieurs à plusieurs. Cette approche permet d'éviter la duplication des données et de réduire la taille des documents. Par exemple, un catalogue de produits peut être lié à des commandes à l'aide d'une référence product_id.
  • Conception de modèles de requête. Structurez vos collections et vos documents en fonction de la manière dont les données seront interrogées. Par exemple, si votre application récupère fréquemment des profils d'utilisateurs avec leurs commandes, l'intégration des commandes dans le document de l'utilisateur peut simplifier les requêtes.
  • Évitez les documents volumineux et profondément imbriqués. Bien que l'intégration soit puissante, évitez de créer des documents trop volumineux ou profondément imbriqués, car ils peuvent nuire aux performances et rendre les requêtes plus complexes. Au lieu de cela, équilibrez l'intégration et le référencement lorsque c'est nécessaire.
  • Utilisez les tableaux à bon escient. Les tableaux sont parfaits pour stocker des listes de données connexes, mais évitez une croissance illimitée. Par exemple, stocker les 10 dernières commandes d'un utilisateur dans un tableau est une bonne chose, mais stocker l'ensemble de son historique de commandes peut entraîner des problèmes de performance.
  • Normaliser pour les charges de travail à forte intensité d'écriture. Pour les applications à forte intensité d'écriture, normalisez vos données afin de réduire les doublons et d'améliorer les performances d'écriture. Utilisez des références pour relier des données connexes au lieu de les intégrer.
  • Dénormaliser pour les charges de travail lourdes en lecture. Pour les applications nécessitant beaucoup de lecture, dénormalisez vos données afin de minimiser le besoin de jointures et d'améliorer les performances de lecture. Intégrez les données fréquemment consultées dans les documents.

Sauvegarde et sécurité

La protection de votre déploiement MongoDB est essentielle pour garantir l'intégrité, la disponibilité et la conformité des données. Voici un guide sur la mise en œuvre de pratiques robustes en matière de sauvegarde et de sécurité.

  • Utilisez les outils natifs de MongoDB : Exploitez mongodump et mongorestore pour créer et restaurer des sauvegardes. Ces outils vous permettent d'exporter et d'importer des données au format BSON, ce qui garantit la compatibilité et la cohérence. Pour des solutions de sauvegarde plus avancées, envisagez une restauration ponctuelle à l'aide de sauvegardes oplog (Ops Manager). Cela vous permet de restaurer votre base de données à un moment précis, en minimisant la perte de données.
  • Activer l'authentification : Activez toujours l'authentification dans les environnements de production afin d'empêcher tout accès non autorisé. MongoDB prend en charge le SCRAM (Salted Challenge Response Authentication Mechanism) pour une authentification sécurisée par mot de passe.
  • Contrôle d'accès basé sur les rôles (RBAC) : Mettez en œuvre le système RBAC pour n'accorder aux utilisateurs que les autorisations nécessaires. Suivez le principe du moindre privilège pour minimiser les risques de sécurité.
  • Lier à des interfaces privées : Configurez MongoDB pour qu'il se lie uniquement à des interfaces de réseau privées, afin d'éviter toute exposition à l'internet public.
  • Activer TLS/SSL : Utilisez TLS/SSL pour crypter les données en transit, afin de garantir une communication sécurisée entre les clients et la base de données.
  • Mettre en place des listes blanches d'adresses IP et des réseaux privés virtuels (VPN) : Restreignez l'accès à vos instances MongoDB en n'autorisant que les adresses IP de confiance. Pour plus de sécurité, utilisez des VPN afin de créer des tunnels sécurisés pour accéder aux bases de données de production.
  • Chiffrement au repos : Activez le chiffrement au repos en utilisant la prise en charge native de MongoDB dans le moteur de stockage WiredTiger. Les données sensibles stockées sur le disque sont ainsi protégées.
  • Cryptage au niveau du champ côté client : Pour les exigences de sécurité élevées, utilisez le cryptage de champ côté client pour crypter des champs spécifiques avant qu'ils ne soient envoyés à la base de données. Cela garantit que même les administrateurs de bases de données ne peuvent pas accéder aux informations sensibles.

Conclusion

Que vous construisiez un petit projet secondaire ou une application d'entreprise à grande échelle, MongoDB vous offre la flexibilité et la puissance nécessaires pour travailler avec les données selon vos propres conditions. Son modèle basé sur des documents, sa conception de schémas dynamiques et sa capacité à évoluer sans effort en font un choix de premier ordre pour les développeurs modernes. En comprenant comment l'utiliser efficacement et en suivant les meilleures pratiques, vous serez sur la bonne voie pour créer des applications rapides, flexibles et pérennes.

Vous voulez passer à la vitesse supérieure ? Explou le guide de certification MongoDB pour comprendre ce qu'implique l'obtention d'une certification, ou révisez ces questions d'entretien MongoDB courantes pour vous préparer à votre prochain poste de technicien.

Devenez ingénieur en données

Faites la preuve de vos compétences en tant qu'ingénieur en données prêt à l'emploi.
Accélérer ma carrière dans les données

FAQ

L'utilisation de MongoDB est-elle gratuite ?

 Oui, MongoDB propose une édition communautaire gratuite et open-source que vous pouvez exécuter localement. MongoDB Atlas fournit également une base de données cloud gratuite avec des ressources limitées, ce qui est idéal pour l'apprentissage et les petits projets.

Qu'est-ce que BSON et en quoi est-il différent de JSON ?

BSON (Binary JSON) est le format utilisé par MongoDB pour stocker les documents. Il est similaire à JSON mais inclut des types de données supplémentaires comme les dates et les données binaires, et il est optimisé pour la performance et la traversée.

MongoDB peut-il être utilisé pour des analyses ou des rapports ?

Bien que MongoDB ne soit pas une base de données analytique traditionnelle, elle prend en charge les pipelines d'agrégation et les intégrations avec des outils tels que Tableau, Power BI et MongoDB Charts pour l'analyse et la visualisation des données.

MongoDB est-il conforme à la norme ACID ?

MongoDB prend en charge les transactions ACID au niveau des documents et, à partir de la version 4.0, les transactions ACID multi-documents, ce qui le rend adapté aux applications nécessitant une cohérence des données.

Quelle est la sécurité de MongoDB ?

MongoDB comprend des fonctionnalités telles que l'authentification, le contrôle d'accès basé sur les rôles, le cryptage au repos et en transit, et l'audit. MongoDB Atlas ajoute encore plus de couches de sécurité, telles que l'isolation du réseau et les sauvegardes automatiques.

Quels types d'applications utilisent MongoDB ?

MongoDB est utilisé dans une large gamme d'applications - des systèmes de gestion de contenu et des applications mobiles aux plateformes d'analyse en temps réel et aux solutions IoT. Sa flexibilité lui permet de s'adapter à de nombreux cas d'utilisation.

MongoDB peut-il évoluer horizontalement ?

Oui ! MongoDB prend en charge la mise à l'échelle horizontale grâce au sharding, ce qui vous permet de répartir les données sur plusieurs serveurs et de gérer efficacement de gros volumes de trafic et de données.


Karen Zhang's photo
Author
Karen Zhang
LinkedIn

Karen est une ingénieure de données passionnée par la construction de plateformes de données évolutives. Elle a de l'expérience dans l'automatisation de l'infrastructure avec Terraform et est ravie de partager ses connaissances dans des articles de blog et des tutoriels. Karen est une bâtisseuse de communauté, et elle est passionnée par la promotion des liens entre les professionnels des données.

Sujets

Apprenez-en plus sur MongoDB avec ces cours !

Certification disponible

Cours

Introduction à MongoDB en Python

4 hr
21.2K
Apprenez à manipuler et à analyser des données structurées de manière flexible avec MongoDB.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow