Accéder au contenu principal

Tutoriel MongoDB : comment configurer et interroger des bases de données MongoDB

Apprenez à connecter et analyser des bases de données MongoDB en Python.
Actualisé 19 sept. 2026  · 10 min lire

Explorer avec l’IA

ChatGPTClaudePerplexity

Vous avez probablement entendu parler des bases de données relationnelles, voire déjà travaillé avec elles. Le format lignes-tableaux est la structure la plus populaire et la plus intuitive pour stocker des informations. Malheureusement, toutes les données ne rentrent pas dans des lignes et des tables. En réalité, de nombreux problèmes du monde réel nécessitent des bases de données non relationnelles. Existe‑t‑il des alternatives ?

La réponse est OUI ! Il existe quatre types de bases qui n’utilisent ni lignes ni tables. On les appelle des bases NoSQL, car vous ne pouvez pas les interroger avec SQL. Il s’agit des :

  • Bases clé‑valeur
  • Bases orientées documents
  • Bases en familles de colonnes
  • Bases orientées graphes

Cet article se concentre sur les bases de données orientées documents et sur l’utilisation d’un serveur appelé MongoDB. Mais avant d’entrer dans la technique, voyons quelques cas d’usage des bases de documents. Vous pouvez consulter notre guide dédié aux bases de données orientées graphes pour en savoir plus.

Quand utiliser des bases orientées documents ?

L’un des principaux cas d’usage consiste à gérer des données qui ne s’intègrent pas proprement dans un schéma prédéfini comme une table. De nombreux processus ou applications métiers stockent ce type de données. Voici quelques exemples :

  • Applications web et mobiles : profils utilisateurs, préférences, contenus et interactions
  • Systèmes de gestion de contenu : stockage d’un large éventail de médias (texte, images, vidéo, GIF, etc.)
  • Plateformes e‑commerce : catalogues produits, informations clients, historique de commandes, inventaire, etc.
  • Jeux vidéo : profils joueurs, classements
  • Journalisation et collecte de données : volumes importants de logs, événements, métriques pour l’analyse, etc.

Prenez un instant pour imaginer comment ces données s’intégreraient dans des tables. Par exemple, une plateforme e‑commerce aurait du mal à stocker des catalogues produits dans un schéma figé : les produits ont des attributs différents, parfois en nombre variable. Faut‑il 10 colonnes pour 10 caractéristiques physiques de drones de 100 marques différentes, ou 5–6 colonnes suffisent‑elles pour des livres ?

Dans ces scénarios, les bases tabulaires ne sont pas adaptées. En utilisant des bases orientées documents comme MongoDB, vous bénéficiez des atouts suivants :

  • Aucun coût de conception de schéma en amont
  • Les documents (données) peuvent évoluer dans le temps (types, nombre d’attributs, etc.)
  • Les bases de documents évitent les jointures, ce qui accélère considérablement les requêtes
  • Intuitif pour les développeurs : les bases de documents sont souvent de gros fichiers JSON, autrement dit d’énormes dictionnaires pour les Pythonistes
  • Les bases de documents se scalent horizontalement, sans nécessiter toujours plus de ressources de calcul à mesure que la base grandit

Passons maintenant aux concepts clés des bases orientées documents et de MongoDB.

Obtenez une certification pour le poste d'analyste de données de vos rêves

Nos programmes de certification vous aident à vous démarquer et à prouver aux employeurs potentiels que vos compétences sont adaptées à l'emploi.

Obtenez Votre Certification
Timeline mobile.png

Concepts fondamentaux autour de MongoDB

Nous avons parlé encore et encore de bases orientées documents, mais de quoi s’agit‑il concrètement ? Voici les notions principales :

  • Documents : les données sont stockées dans des objets appelés documents. En termes simples, ils ressemblent à des objets JSON clé‑valeur. Un document correspond à une ligne dans une table. Si vous programmez en Python, pensez à un document comme à un dictionnaire, et vous serez à l’aise. Gardez juste en tête qu’un document peut contenir des documents imbriqués, l’une des caractéristiques phares des bases de documents.
  • Collections : les collections sont l’équivalent des tables dans les bases relationnelles, mais au lieu de contenir des lignes, elles contiennent des documents. Ce sont des structures massives pouvant regrouper des milliers, voire des millions de dictionnaires.
  • Sans schéma : c’est là que cela devient intéressant. Une collection peut agréger des documents de tailles variables. Par exemple, le document 1 peut avoir 10 paires clé‑valeur tandis que le document 2 en compte 15 (tant que l’information relève de la même catégorie/sujet, comme des produits, pour que la collection garde du sens).

Voici un excellent tableau qui résume les différences entre bases relationnelles et bases orientées documents :

Caractéristique Bases orientées documents (p. ex., MongoDB) Bases relationnelles (p. ex., MySQL, PostgreSQL)
Structure des données Stocke les données sous forme de documents (JSON, BSON), autorisant des structures flexibles et hiérarchiques. Stocke les données en tables avec lignes et colonnes, selon un schéma prédéfini.
Flexibilité du schéma Sans schéma : les documents peuvent avoir des structures différentes, avec des champs et types variés. Schéma fixe : exige un schéma défini avec colonnes et types précis.
Langage de requête Utilise MongoDB Query Language (MQL) ou équivalent, orienté objets et plus flexible. Utilise SQL (Structured Query Language) pour interroger des données structurées.
Jointures Évite les jointures en imbriquant les données liées dans les documents (dénormalisation). Gère des jointures complexes entre tables (normalisation).
Performance Lectures/écritures rapides pour des données non ou semi‑structurées. Évite le surcoût des jointures. Excellente performance sur données structurées, mais les jointures peuvent ralentir les requêtes.
Scalabilité Scalabilité horizontale : répartition des données sur plusieurs serveurs (sharding). Généralement scalabilité verticale : s’appuie sur un matériel plus puissant, même si certains gèrent l’horizontal (p. ex., partitions).
Transactions Prise en charge des transactions ACID multi‑documents (depuis MongoDB 4.0), bien qu’à l’origine pensé pour du non transactionnel. Support complet des transactions ACID, garantissant cohérence et fiabilité.
Cas d’usage Idéal pour des données non ou semi‑structurées comme profils utilisateurs, logs, catalogues et structures flexibles. Parfait pour des données structurées avec relations claires, p. ex. écritures comptables ou ERP.
Relations entre données Prend en charge les données imbriquées (dénormalisation), facilitant la récupération via une seule requête. S’appuie sur des clés étrangères pour relier les tables (normalisation).
Indexation Prend en charge l’indexation mais avec une variété et une sophistication moindres que dans le relationnel. Capacités d’indexation avancées, avec multiples types d’index (B‑tree, hash) pour optimiser la performance.
Cohérence Fournit une cohérence éventuelle en distribution, mais peut offrir une forte cohérence si besoin (via transactions ACID). Assure généralement une forte cohérence grâce aux transactions ACID et à l’intégrité relationnelle.
Montée en volume Monte facilement en charge en ajoutant des serveurs (sharding). Peut monter verticalement ; l’horizontal requiert une configuration plus complexe (p. ex., partitionnement).
Intégrité des données Gérée au niveau de chaque document ; gérer les relations entre documents peut être plus complexe. Support natif robuste via clés primaires/étrangères et contraintes (UNIQUE, NOT NULL, etc.).
Confort développeur Flexible et adapté aux applis modernes (JSON, REST APIs), modélisation souple. Modélisation plus rigide mais bien maîtrisée par les développeurs familiers de SQL et des données structurées.

Passons à la pratique avec des documents dans MongoDB !

Configuration de MongoDB : connexion aux sources de données

Pour interroger des bases orientées documents, nous devons installer le serveur MongoDB. Voici les instructions selon la plateforme :

  • Sur Windows, suivez les instructions de ce lien.
  • Sur systèmes de type Unix, vous pouvez installer MongoDB depuis le terminal :
$ sudo apt-get install -y mongodb

Ensuite, dans un environnement virtuel, installez les bibliothèques pymongo et requests. pymongo est l’adaptateur Python officiel du serveur MongoDB. Nous aurons besoin de requests pour récupérer des données depuis une API.

$ pip install pymongo
$ pip install requests

Puis, depuis le terminal, démarrez le serveur MongoDB avec la commande suivante :

$ sudo service mongodb start

Nous sommes prêts à charger des données dans une base orientée documents. Deux cas de figure se présentent :

  1. Vous disposez localement de données dans des formats adaptés comme JSON, BSON, YAML ou XML.
  2. Vous devez récupérer des données depuis des sources externes, généralement des APIs.

Nous allons couvrir les deux. Commençons par charger localement une collection nommée drone_races.json. Voici l’extrait de code :

import json

from pymongo import MongoClient

# Establish connection to MongoDB
client = MongoClient("localhost", 27017)
# Create a database named "drones"
drones = client["drones"]
# Create a collection named "races"
races = drones["races"]

# Load dataset into MongoDB
with open("data/drone_races.json", "r") as file:
   data = json.load(file)
   races.insert_many(data)

Les deux objets les plus importants ici sont drones (une base) et races (une collection). La plupart des fonctions et méthodes se rapportent aux collections. Les objets base de données servent surtout à gérer les collections.

Voyons maintenant comment charger les mêmes données via une API. J’ai exposé ces informations sous forme d’API grâce à un service appelé Mockaroo. Voici l’extrait :

import requests
from pymongo import MongoClient

# Fetch data from the API
api_url = (
   "https://my.api.mockaroo.com/drone_race_matches.json?key=6f5a6b50"
)
response = requests.get(api_url)

if response.status_code == 200:
   data = response.json()  # Get the JSON data from the API

   # Establish a connection to MongoDB
   client = MongoClient()

   # Access or create a specific database
   drones = client["drones"]

   # Access or create a specific collection within the database
   races = drones["races"]

   # Insert the fetched data into the MongoDB collection
   races.insert_many(data)
else:
   print("Failed to fetch data from the API.")

Nous avons chargé des données dans la collection races de la base drones … enfin, en théorie. Vérifions‑le avec des requêtes !

Requêtes MongoDB élémentaires

Compter les documents dans MongoDB

Pour vérifier la présence de données dans une collection, comptons ses documents. Nous allons utiliser la méthode count_documents :

>>> races.count_documents({})
9040

Notez le dictionnaire vide passé à count_documents. Dans MongoDB, on parle de filtre. Au fil du tutoriel, nous apprendrons à le renseigner pour créer différents filtres. Pour l’instant, il est vide. Ce code équivaut à SELECT COUNT(*) FROM table_name en SQL.

Nous avons 9040 documents — parfait ! Jetons un œil aux données.

Extraire un document dans MongoDB

Pour afficher un document avec pymongo, nous pouvons utiliser la méthode find_one :

from pprint import pprint

>>> pprint(races.find_one())
{'_id': ObjectId('659d31e9255ec0cf4bab529d'),
'laps': 3,
'league': 'F1 Drones',
'location': {'city': 'Ford',
             'country': 'United Kingdom',
             'date': 'error: invalid date "2024-10-25"',
             'venue': 'Manhattan Seas'},
'name': 'Honorable',
'pilots': {'drone': 'DJI3-old',
           'finishing_position': 66,
           'name': 'Kariotta Cow',
           'qualification_time': 27.39,
           'team': 'Sky Crusaders',
           'telemetry': {'altitude': 34.3,
                         'battery_voltage': 12.1,
                         'speed': 68.3,
                         'timestamp': 'error: invalid date '
                                      '"2024-10-25T14:09:26Z"'}},
'sponsors': ['Fat Shark', 'DJI', 'Etisalat'],
'weather_conditions': 'snowy'}

Remarquez les champs (clés) de ce document. Il stocke les informations d’une course de drones et inclut notamment :

  • Le nombre de tours
  • Les conditions météo au moment de la course
  • Certains pilotes présents lors de la course
  • Les sponsors, etc.

Le document comporte aussi un champ obligatoire _id, un hachage unique.

Sélectionner tous les documents dans MongoDB

count_documents renvoie toujours un nombre, mais parfois nous souhaitons voir les données correspondant à notre requête. Pour cela, utilisons le grand frère de find_one, à savoir find :

from pprint import pprint

for race in races.find():
   pprint(race)
   break

{'_id': ObjectId('659d31e9255ec0cf4bab529d'),
'laps': 3,
'league': 'F1 Drones',
'location': {'city': 'Ford',
             'country': 'United Kingdom',
             'date': 'error: invalid date "2024-10-25"',
             'venue': 'Manhattan Seas'},
'name': 'Honorable',
'pilots': {'drone': 'DJI3-old',
           'finishing_position': 66,
           'name': 'Kariotta Cow',
           'qualification_time': 27.39,
           'team': 'Sky Crusaders',
           'telemetry': {'altitude': 34.3,
                         'battery_voltage': 12.1,
                         'speed': 68.3,
                         'timestamp': 'error: invalid date '
                                      '"2024-10-25T14:09:26Z"'}},
'sponsors': ['Fat Shark', 'DJI', 'Etisalat'],
'weather_conditions': 'snowy'}

find sans argument (requête vide) renvoie les documents un par un, mais ce n’est pas ce que nous voulons ! Nous voulons poser des questions intéressantes à nos données. C’est là que les documents filtres sont utiles.

Sélectionner selon une condition dans MongoDB

Commençons par les filtres les plus simples : faire correspondre les documents où un champ égalise une valeur. L’équivalent SQL serait :

SELECT *
 FROM table_name
WHERE field = value

Faisons‑le dans MongoDB :

criteria = {"sponsors": "Fat Shark"}

fat_shark_races = races.count_documents(criteria)
fat_shark_races

6194

Ici, nous sélectionnons les courses ayant « Fat Shark » parmi leurs sponsors. La syntaxe est simplement un dictionnaire qui mappe le champ sponsors à « Fat Shark ».

Le langage de requête MongoDB ne serait pas un langage sans opérateurs d’inégalité. Voici l’opérateur « inférieur à » :

criteria = {"pilots.qualification_time": {"$lt": 10}}

quick_races = races.count_documents(criteria)
quick_races

3061

Cette requête illustre quatre caractéristiques de MQL :

  • Vous pouvez accéder à des sous‑champs avec la notation pointée. pilots.qualification_time extrait la valeur imbriquée correspondante.
  • Presque tous les opérateurs MQL commencent par un dollar.
  • Les opérateurs s’utilisent dans un document imbriqué comme ci‑dessus.
  • $lt signifie « less than » (inférieur à).

Résultat : il y a 3061 courses où un pilote a un temps de qualification inférieur à 10 secondes. Voici la fratrie de $lt :

  • $lte : inférieur ou égal
  • $gt : supérieur
  • $gte : supérieur ou égal

Ils s’emploient avec la même syntaxe que $lt.

Sélectionner avec des opérateurs logiques dans MongoDB

MQL inclut également des opérateurs logiques comme $and et $or. Commençons par le second.

Récupérons les courses ayant soit le Royaume‑Uni comme lieu, soit Etisalat parmi les sponsors :

criteria = {
   "$or": [
       {"location.country": "United Kingdom"},
       {"sponsors": "Etisalat"},
   ]
}

>>> races.count_documents(criteria)

6223

Là encore, utilisez le bouton Explain code pour une explication détaillée.

Nous avons 6223 documents correspondant à ces critères. Pour exprimer une logique OR sur plusieurs valeurs d’un même champ, utilisez l’opérateur $in.

Par exemple, pour vérifier des conditions météo défavorables :

criteria = {
   "weather_conditions": {"$in": ["rainy", "snowy", "cloudy"]}
}

>>> races.count_documents(criteria)

5508

Cette requête aurait été fastidieuse avec $or. Passons à $and.

Cette fois, nous voulons trouver les courses en Australie ET sponsorisées par Fat Shark. Voici comment faire avec $and :

criteria = {
   "$and": [
       {"location.country": "Australia"},
       {"sponsors": "Fat Shark"},
   ]
}
>>> races.count_documents(criteria)
193

Dans la pratique, vous utiliserez rarement $and, car on peut le remplacer par une écriture plus simple :

criteria = {
   "location.country": "Australia",
   "sponsors": "Fat Shark",
}

races.count_documents(criteria)
193

Il suffit d’ajouter plusieurs paires clé‑valeur au document filtre pour réaliser un ET logique.

Enfin, l’opérateur $nin vérifie la non‑appartenance. Par exemple, pour retourner toutes les courses qui ne se sont pas tenues aux États‑Unis, au Royaume‑Uni ou en Australie :

criteria = {
   "location.country": {
       "$nin": ["United States", "United Kingdom", "Australia"]
   }
}

>>> races.count_documents(criteria)
126

Ici, il ne reste que les Émirats arabes unis, donc on pourrait tout aussi bien écrire :

criteria = {"location.country": "United Arab Emirates"}

>>> races.count_documents(criteria)
126

Mais vous avez l’idée.

Requêter des valeurs nulles ou manquantes dans MongoDB

Vérifier les valeurs nulles ou manquantes est une opération universelle en analyse de données. MongoDB propose pour cela l’opérateur $exists. Voici deux exemples pour contrôler l’existence d’un champ :

criteria = {"location.district": {"$exists": True}}

>>> races.count_documents(criteria)

0

Hum, il semble que le champ district n’existe dans aucun document. En revanche, laps devrait être présent partout puisqu’il s’agit d’une information clé d’une course.

criteria = {"laps": {"$exists": True}}

races.count_documents(criteria)
9040

Comme prévu, tous les documents possèdent le champ laps. Et pour les champs existants mais à valeur nulle ? On peut le vérifier aussi :

criteria = {"pilots.finishing_position": None}

races.count_documents(criteria)
0

En utilisant l’objet Python None, on peut tester l’absence de valeur sur n’importe quel champ.

Certains cas avancés nécessitent aussi des contrôles d’existence ou de nullité. Par exemple, vérifier l’existence d’éléments donnés dans de grands tableaux imbriqués.

Pour cela, on peut utiliser la syntaxe d’indexation de tableau en MQL. Par exemple, pour trouver les courses ayant un seul sponsor, vérifions l’existence du deuxième élément du tableau sponsors :

# Comme toujours, l'indexation commence à 0
criteria = {"sponsors.1": {"$exists": False}}

races.count_documents(criteria)
2929

Il suffit d’ajouter l’index de l’élément à la clé. Dans notre collection, près de 3000 courses n’avaient qu’un seul sponsor.

Cette syntaxe d’indexation fonctionne avec de nombreux autres opérateurs, pas seulement $exists.

Projections (restriction des champs)

Dernier point de ce tutoriel : les projections. Jusqu’ici, nos résultats incluaient tous les champs de chaque document. Ce n’est pas idéal si vos documents comptent des centaines de champs : l’affichage devient illisible.

Afin de choisir les champs à retourner, utilisons des projections. Exemple :

criteria = {"pilots.telemetry.speed": {"$gte": 20}}
projection = {
   "sponsors": 1,
   "location.country": 1,
   "pilots.telemetry.speed": 1,
   "pilots.name": 1,
}

fast_pilots = races.find(criteria, projection)

for pilot in fast_pilots:
   pprint(pilot)
   break

Nous définissons le filtre comme d’habitude et, cette fois, un second document avec quatre champs réglés sur 1. Passé en second argument de find (ou de count_documents), ce projection ne renverra que les champs à 1.

{'_id': ObjectId('659d31e9255ec0cf4bab529d'),
'location': {'country': 'United Kingdom'},
'pilots': {'name': 'Kariotta Cow', 'telemetry': {'speed': 68.3}},
'sponsors': ['Fat Shark', 'DJI', 'Etisalat']}

Même si nous n’avons choisi que quatre champs, l’inévitable champ _id s’est invité. Pour le supprimer, réglez‑le sur 0 dans le dictionnaire projection :

criteria = {"pilots.telemetry.speed": {"$gte": 20}}
projection = {
   "sponsors": 1,
   "location.country": 1,
   "pilots.telemetry.speed": 1,
   "pilots.name": 1,
   "_id": 0,
}

fast_pilots = races.find(criteria, projection)

for pilot in fast_pilots:
   pprint(pilot)
   break

{'location': {'country': 'United Kingdom'},
'pilots': {'name': 'Kariotta Cow', 'telemetry': {'speed': 68.3}},
'sponsors': ['Fat Shark', 'DJI', 'Etisalat']}

C’est tout de suite plus lisible.

Enfin, pour retourner tous les champs sauf quelques‑uns, mettez ces champs à 0 :

projection = {"_id": 0, "league": 0, "pilots": 0}

# Critères vides pour cet exemple
races.find_one({}, projection)

{'name': 'Honorable',
'location': {'venue': 'Manhattan Seas',
 'city': 'Ford',
 'country': 'United Kingdom',
 'date': 'error: invalid date "2024-10-25"'},
'sponsors': ['Fat Shark', 'DJI', 'Etisalat'],
'laps': 3,
'weather_conditions': 'snowy'}

Comme vous le voyez, cette fois nous avons tous les champs sauf _id, league et pilots.

Conclusion

Ce tutoriel ne reflète qu’une petite partie des capacités de MongoDB en tant que système de gestion de base de données. Aujourd’hui, nous n’avons couvert que les requêtes GET (récupération d’informations), mais MongoDB permet aussi d’insérer, de mettre à jour et de supprimer des données. Nous avons également laissé de côté toute une classe de requêtes : les agrégations.

Tous ces sujets dépassent le cadre de cet article et nécessitent des ressources complémentaires. Pourquoi ne pas explorer :

Devenez certifié SQL

Prouvez que vos compétences en SQL sont prêtes à l'emploi grâce à une certification.

FAQs

En quoi les bases orientées documents comme MongoDB diffèrent‑elles des bases relationnelles ?

Les bases orientées documents, comme MongoDB, stockent les données sous forme de documents (souvent des formats proches de JSON) pouvant contenir des structures imbriquées. Cela diffère des bases relationnelles, qui stockent les données en lignes et en tables avec un schéma fixe. Les bases de documents offrent plus de flexibilité grâce à un schéma dynamique : chaque document peut comporter des champs et des types différents. C’est ce qui rend MongoDB adapté aux données non ou semi‑structurées, contrairement aux bases relationnelles qui exigent un schéma prédéfini.

Pourquoi utiliser MongoDB plutôt qu’une base relationnelle ?

MongoDB est pertinent lorsque vos données ne se prêtent pas naturellement à une structure tabulaire. Utilisez MongoDB si votre schéma doit rester flexible, si vous anticipez des évolutions fréquentes de structure ou si vous gérez de gros volumes de données non structurées. C’est également un bon choix pour des applications nécessitant des lectures/écritures rapides à l’échelle, comme l’e‑commerce, la journalisation et les systèmes de gestion de contenu.

Quels langages de programmation sont compatibles avec MongoDB ?

MongoDB est compatible avec un large éventail de langages, dont Python, Java, JavaScript, Node.js, Go, Ruby et C#, via des pilotes et bibliothèques officiels. La bibliothèque Python pymongo est couramment utilisée pour interagir avec MongoDB en data science. MongoDB s’intègre aussi bien avec des frameworks modernes tels que Django, Flask et Express.js.

Comment MongoDB gère‑t‑il les données à grande échelle et le scaling horizontal ?

MongoDB est conçu pour la scalabilité horizontale grâce au sharding, qui répartit les données sur plusieurs serveurs pour gérer efficacement de grands volumes. À mesure que vos données croissent, MongoDB peut répartir la charge sur plusieurs machines, améliorant performance et capacité. Cela en fait un excellent choix pour les applications big data ou en forte croissance.

MongoDB peut‑il gérer des requêtes complexes comme les bases SQL ?

Oui, MongoDB peut gérer des requêtes complexes, mais son langage (MQL, MongoDB Query Language) diffère de SQL. MongoDB propose des filtres, des projections, des opérateurs logiques et des agrégations pour des requêtes sophistiquées, afin de récupérer, filtrer et transformer les données. En revanche, à la différence des bases SQL, MongoDB ne prend pas en charge les jointures de la même manière, car il est conçu pour dénormaliser les données au sein de documents flexibles.

MongoDB convient‑il à l’analytique en temps réel ?

MongoDB peut être utilisé pour des analyses en temps réel, mais ses performances dépendent largement de la façon dont les données sont structurées et indexées. Grâce à ses capacités d’indexation et à son framework d’agrégation, vous pouvez exécuter des requêtes en temps réel et générer des insights efficacement. Pour des analyses plus avancées, envisagez une intégration avec des outils comme Apache Spark ou exploitez le framework d’agrégation pour traiter de gros volumes en temps réel.

Quelles sont les fonctionnalités de sécurité proposées par MongoDB ?

MongoDB offre plusieurs fonctions de sécurité, notamment l’authentification, l’autorisation (contrôle d’accès basé sur les rôles), le chiffrement (en transit et au repos) et l’audit. L’Enterprise Edition de MongoDB propose des fonctionnalités supplémentaires comme l’intégration LDAP et l’authentification Kerberos pour les besoins d’entreprise. Ces mécanismes protègent les données sensibles tout en facilitant la conformité réglementaire.

MongoDB gère‑t‑il les transactions ACID ?

Oui, MongoDB prend en charge des transactions conformes ACID, en particulier depuis la version 4.0. Cela autorise des transactions multi‑documents, à l’instar des bases relationnelles, garantissant atomicité, cohérence, isolation et durabilité pour les opérations impliquant plusieurs documents ou collections. MongoDB convient ainsi aux scénarios nécessitant des garanties transactionnelles.

Quelle est la différence entre JSON et BSON dans MongoDB ?

Si JSON est un format lisible par l’humain, BSON (Binary JSON) est le format de stockage de MongoDB. BSON permet un stockage et une récupération plus efficaces et prend en charge des types supplémentaires comme les dates et les données binaires, non gérés nativement par JSON. BSON ajoute aussi des métadonnées qui améliorent les performances lors du stockage et de la lecture des documents.


Bexruz (Bex) Tuychiev's photo
Author
Bexruz (Bex) Tuychiev
LinkedIn

Je suis créateur de contenu en science des données avec plus de 2 ans d’expérience et l’une des plus grandes audiences sur Medium. J’aime écrire des articles détaillés sur l’IA et le ML avec une pointe de sarcasme, histoire de les rendre un peu moins austères. J’ai publié plus de 130 articles et un cours DataCamp, avec un autre en préparation. Mes contenus ont été vus par plus de 5 millions de personnes, dont 20 000 sont devenues abonnées sur Medium et LinkedIn. 

Sujets
Python
Ingénierie des données

Commencez votre aventure NoSQL sur DataCamp dès aujourd’hui !

Cours

Introduction à MongoDB en Python

3 h
24.3K
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