🛢️Parcours Fioul GroupéMongoDB · Chapitre 01
Accueil › MongoDB › Chapitre 01
Chapitre 01 / 17

Introduction à MongoDB

Comprendre ce qu'est une base NoSQL orientée documents, en quoi elle diffère du modèle relationnel, et de quoi se compose l'écosystème MongoDB. C'est le socle de tout le parcours.

1 Notion

Qu'est-ce qu'une base NoSQL ?

Les bases relationnelles (MySQL, PostgreSQL…) stockent les données dans des tables avec un schéma rigide (colonnes fixes, types imposés) et relient les tables par des clés. Les bases NoSQL (« Not Only SQL ») assouplissent ce modèle pour gagner en flexibilité et en montée en charge.

Il existe plusieurs familles de NoSQL : clé-valeur (Redis), colonnes (Cassandra), graphes (Neo4j) et documents. MongoDB appartient à la famille orientée documents : c'est la plus proche de la façon dont on manipule les données dans le code (objets JSON).

À retenir — NoSQL ne veut pas dire « sans structure » ni « sans SQL supérieur » : c'est un autre compromis, adapté à des données souples, hétérogènes ou très volumineuses.
2 Notion

Le document, unité de base

Dans MongoDB, on ne stocke pas des lignes mais des documents : des structures clé-valeur au format proche du JSON. Un document peut contenir des tableaux et des sous-documents imbriqués.

Un document (vue JSON)

{
  "_id": ObjectId("652f1a..."),
  "nom": "Dupont",
  "adresse": { "ville": "Limoges", "cp": "87000" },   // sous-document
  "commandes": [ 500, 1000 ]                              // tableau
}

En interne, MongoDB stocke ces documents au format BSON (Binary JSON) : une version binaire du JSON, plus compacte et enrichie de types que JSON ne connaît pas (dates, entiers 64 bits, ObjectId…).

JSON vs BSON — on écrit et on lit du JSON ; MongoDB stocke du BSON. Le BSON ajoute des types (Date, Int32, Decimal128…) et permet un parcours rapide des documents.
3 Notion

Collections & base de données

Les documents sont regroupés dans des collections (l'équivalent des tables), elles-mêmes contenues dans une base de données. Contrairement à une table, une collection n'impose pas de schéma : deux documents d'une même collection peuvent avoir des champs différents.

ConceptRôle
Base de donnéesconteneur de collections (ex. fioul)
Collectiongroupe de documents (ex. campagnes)
Documentun enregistrement (ex. une campagne)
Champune propriété du document (ex. zone)
Souplesse — cette absence de schéma imposé est un atout (on fait évoluer les données sans migration lourde) mais demande de la discipline : on verra au chapitre 10 comment poser des règles avec la validation de schéma.
4 Notion

SQL vs MongoDB — le vocabulaire

Pour qui vient du relationnel, voici la table de correspondance des termes et des opérations.

Monde SQLMonde MongoDB
TableCollection
Ligne / enregistrementDocument
ColonneChamp
Clé primaireChamp _id
INSERT INTOinsertOne() / insertMany()
SELECTfind()
UPDATEupdateOne() / updateMany()
DELETEdeleteOne() / deleteMany()
JOINdocuments imbriqués ou $lookup
GROUP BYaggregate() avec $group
Différence de fond — en SQL on répartit les données dans plusieurs tables reliées ; en MongoDB on regroupe souvent dans un seul document ce qu'on lit ensemble. On y reviendra au chapitre 8 (modélisation).
5 Notion

Quand choisir MongoDB ?

MongoDB brille quand les données sont souples, hiérarchiques ou évolutives, et quand on veut itérer vite. Il n'est pas toujours le bon choix : pour des transactions financières complexes multi-tables, le relationnel reste souvent préférable.

À retenir — le bon réflexe n'est pas « NoSQL contre SQL » mais « quel modèle colle à mes données et à mes accès ? ».
6 Notion

L'écosystème MongoDB

Autour du serveur, plusieurs outils qu'on utilisera tout au long du parcours :

🛢️ Sur le projet Fioul Groupé

Notre application stockera ses données dans une base fioul, avec des collections comme campagnes, fournisseurs et utilisateurs. On commencera en local (mongod + mongosh + Compass), puis on hébergera la base sur Atlas pour que l'API Spring et l'appli Flutter s'y connectent. Le caractère « documents » tombe à pic : une campagne et ses commandes forment naturellement un seul document.

Ce qu'il faut retenir du chapitre
  • MongoDB est une base NoSQL orientée documents (format JSON/BSON).
  • Hiérarchie : base → collections → documents → champs.
  • Pas de schéma imposé : souplesse + discipline.
  • Écosystème : mongod, mongosh, Compass, drivers, Atlas.
← Sommaire