Découvrir MongoDB et le modèle document
Se connecter pour s'inscrireVotre progression
Syllabus
-
-
Objectifs
-
Validations de compétences
-
Public cible
Aucun public cible spécifié pour ce module.
-
Besoins techniques
-
Prérequis
- Aucun prérequis
-
Niveau
-
Historique du module
Aucune action enregistrée
Découvrir MongoDB et le modèle document
-
Présentation du cours
-
Public cible
Ce cours s'adresse aux :
- Développeurs full-stack ou back-end
- Data analysts et data scientists
- Administrateurs de bases de données
- Architectes solutions cloud
- Étudiants en informatique
-
Objectifs d'apprentissage
À l'issue de cette formation, vous serez capable de :
Comprendre les concepts fondamentaux des bases de données NoSQLMaîtriser les opérations CRUD avec MongoDBConcevoir des schémas de documents efficacesMettre en place des agrégations complexesOptimiser les performances des requêtesIntégrer MongoDB dans un écosystème Big Data -
Prérequis
Connaissances de base
- Concepts fondamentaux des bases de données
- Notions de programmation (JavaScript ou Python)
- Bases du langage JSON
Environnement technique
- Accès à un ordinateur avec 4 Go de RAM minimum
- Connexion Internet stable
- Droits d'administration pour l'installation de logiciels
-
Durée et organisation
~40 heures de formation
Réparties sur plusiers séquences
Contenu pédagogique
- modules théoriques
- exercices pratiques
- projets fil rouge
- examens
Planning type
- en fonction du niveau et du temps disponible
- Accès 24/7 aux ressources en ligne
- Support pédagogique inclus
-
-
Introduction à MongoDB
Écosystème et Architecture de MongoDB
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#e1f5e1', 'primaryTextColor': '#0d6e0d', 'primaryBorderColor': '#13AA52'}}}%% flowchart TD classDef cloud fill:#13AA52,color:white,stroke:#0d6e0d; classDef enterprise fill:#5d9cec,color:white,stroke:#2c3e50; classDef tools fill:#a0d468,color:white,stroke:#5d7c1d; classDef router fill:#2c3e50,color:white,stroke:#1a252f; classDef config fill:#8e44ad,color:white,stroke:#5d2d7d; classDef primary fill:#e74c3c,color:white,stroke:#c0392b; classDef secondary fill:#f39c12,color:white,stroke:#d68910; classDef storage fill:#3498db,color:white,stroke:#2980b9; subgraph "MongoDB Ecosystem" direction TB subgraph "MongoDB Atlas (Cloud)" direction TB A1[fa:fa-cloud Atlas UI] <--> A2[fa:fa-cogs Atlas API] A2 <--> A3[fa:fa-database Atlas Data Lake] A2 <--> A4[fa:fa-search Atlas Search] A2 <--> A5[fa:fa-mobile-alt Atlas Device Sync] end subgraph "MongoDB Enterprise (On-Premise)" direction TB E1[fa:fa-tachometer-alt Ops Manager] <--> E2[fa:fa-server Enterprise Server] E1 <--> E3[fa:fa-chart-line Monitoring] E1 <--> E4[fa:fa-hdd Backup] end subgraph "MongoDB Tools" direction TB T1[fa:fa-compass Compass] <--> T2[fa:fa-tools Database Tools] T3[fa:fa-terminal MongoDB Shell] <--> T4[fa:fa-plug Drivers] T5[fa:fa-plug Connectors] <--> T6[fa:fa-chart-bar BI Connector] end subgraph "MongoDB Cluster" direction TB subgraph "Mongos Routers" M1["fa:fa-route Mongos 1 --- 🔍 Routeur de requêtes 📦 Cache de métadonnées ⚖️ Équilibrage de charge"] M2["fa:fa-route Mongos 2 --- 🔍 Routeur de requêtes 📦 Cache de métadonnées ⚖️ Équilibrage de charge"] end subgraph "Config Servers (C1, C2, C3)" C1["fa:fa-cog Config 1 --- 📋 Métadonnées 🗺️ Mapping des shards 🔄 Réplication"] C2[fa:fa-cog Config 2] <--> C1 C2 <--> C3[fa:fa-cog Config 3] end subgraph "Shard 1 (S1)" direction TB S1P["fa:fa-star Primary --- ✏️ Écritures 🔄 Réplication 👑 Leader"] S1P -->|réplique| S1S1["fa:fa-clone Secondary 1 --- 📥 Réplication 👁️ Lecture seule 🔄 Candidat à l'élection"] S1P -->|réplique| S1S2[fa:fa-clone Secondary 2] end subgraph "Shard 2 (S2)" direction TB S2P[fa:fa-star Primary] -->|réplique| S2S1[fa:fa-clone Secondary 1] S2P -->|réplique| S2S2[fa:fa-clone Secondary 2] end M1 -->|route| S1P M1 -->|route| S2P M1 -->|métadonnées| C1 M2 -->|route| S1P M2 -->|route| S2P M2 -->|métadonnées| C1 end %% Connexions entre les composants A2 -.-> M1 A2 -.-> M2 E1 -.-> S1P E1 -.-> S2P T1 --> M1 T1 --> M2 T3 --> M1 T3 --> M2 %% Classes CSS class A1,A2,A3,A4,A5 cloud; class E1,E2,E3,E4 enterprise; class T1,T2,T3,T4,T5,T6 tools; class M1,M2 router; class C1,C2,C3 config; class S1P,S2P primary; class S1S1,S1S2,S2S1,S2S2 secondary; %% Légende legend[fa:fa-list Legend] legend --> cloud_legend[Cloud Services] legend --> enterprise_legend[Enterprise Tools] legend --> tools_legend[Client Tools] legend --> router_legend[Routeur Mongos] legend --> config_legend[Config Servers] legend --> primary_legend[Nœud Primaire] legend --> secondary_legend[Nœud Secondaire] class legend,cloud_legend,enterprise_legend,tools_legend,router_legend,config_legend,primary_legend,secondary_legend legend-style; classDef legend-style fill:#f8f9fa,stroke:#ddd,stroke-width:1px,color:#333,padding:5px,font-size:12px; endFigure 1 : Vue d'ensemble de l'écosystème et de l'architecture MongoDBExplication du schéma :
MongoDB Atlas (Cloud)
Solution cloud complète avec interface de gestion, API, data lake et synchronisation mobile.
MongoDB Enterprise
Version auto-hébergée avec outils de gestion, surveillance et sauvegarde.
Outils Clients
Applications et bibliothèques pour interagir avec MongoDB (Compass, Shell, Drivers).
Architecture du Cluster
- Routeurs Mongos : Point d'entrée des requêtes clientes
- Config Servers (C1-C3) : Stockent les métadonnées du cluster
- Shards (S1-S2) : Stockent les données (chaque shard est un replica set)
- Replica Sets : Groupes de nœuds (1 Primaire + Secondaires) pour la haute disponibilité
Qu'est-ce que MongoDB ?
MongoDB est une base de données NoSQL orientée documents, classée parmi les bases de données les plus populaires au monde. Contrairement aux bases de données relationnelles traditionnelles, MongoDB stocke les données sous forme de documents flexibles et évolutifs, ce qui en fait un choix idéal pour les applications modernes.
À retenir
- MongoDB est une base de données NoSQL orientée documents
- Stockage des données en format BSON (JSON binaire)
- Modèle de données flexible et sans schéma imposé
- Idéal pour les applications nécessitant une grande évolutivité
Caractéristiques clés :
Modèle de documents
Stockage des données en format BSON (binaire JSON) pour une grande flexibilité
Évolutivité horizontale
Distribution des données via le sharding pour gérer de grandes charges
Haute performance
Indexation avancée et accès mémoire pour des temps de réponse rapides
Sécurité renforcée
Chiffrement, authentification et RBAC (contrôle d'accès basé sur les rôles)
Points clés
- Modèle de données flexible avec BSON
- Évolutivité horizontale via le partitionnement (sharding)
- Performances optimisées avec indexation et cache mémoire
- Sécurité complète avec chiffrement et contrôle d'accès fin
Cas d'utilisation
Applications mobiles
Stockage flexible pour les données utilisateur et le contenu des applications mobiles avec synchronisation hors ligne.
E-commerce
Gestion de catalogues produits complexes avec des attributs variables selon les catégories.
Analytique en temps réel
Analyse de données massives avec des agrégations puissantes et des pipelines de traitement.
Réseaux sociaux
Gestion des profils utilisateurs, des publications et des interactions sociales avec des schémas évolutifs.
Écosystème MongoDB
MongoDB Atlas
Service cloud entièrement géré pour MongoDB, offrant évolutivité et haute disponibilité.
MongoDB Compass
Interface graphique officielle pour explorer et analyser vos données MongoDB.
MongoDB Shell
Interface en ligne de commande (CLI) interactive pour administrer et interroger MongoDB.
MongoDB Realm
Plateforme de développement d'applications avec synchronisation des données en temps réel.
Écosystème clé en main
- Atlas : Solution cloud complète avec automatisation des opérations
- Compass : GUI pour visualiser et analyser les données
- Shell : Interface ligne de commande avancée
- Realm : Développement d'applications mobiles et web temps réel
Modèle de documents
Contrairement aux bases de données relationnelles qui utilisent des tables et des lignes, MongoDB stocke les données sous forme de documents au format BSON (binaire JSON).
Avantages
- Schéma dynamique pour une grande flexibilité
- Structure hiérarchique des données
- Support natif des tableaux et documents imbriqués
- Représentation plus naturelle des données pour les développeurs
Exemple de document
{ "_id": ObjectId("5f8d8d8d8d8d8d8d8d8d8d8d"), "titre": "Le Seigneur des Anneaux", "annee": 2001, "duree": 178, "genres": ["Aventure", "Fantasy", "Action"], "realisateur": { "nom": "Jackson", "prenom": "Peter" }, "acteurs": ["Elijah Wood", "Ian McKellen", "Viggo Mortensen"], "pays": "Nouvelle-Zélande", "note_imdb": 8.8 }Architecture de MongoDB
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#e1f5e1', 'primaryTextColor': '#0d6e0d', 'primaryBorderColor': '#13AA52'}}}%% graph TD subgraph "MongoDB Cluster" subgraph "Shard 1" direction TB P1[Primary] -->|réplication| S1a[Secondary 1] P1 -->|réplication| S1b[Secondary 2] end subgraph "Shard 2" direction TB P2[Primary] -->|réplication| S2a[Secondary 1] P2 -->|réplication| S2b[Secondary 2] end subgraph "Config Servers" direction TB C1[Config 1] <--> C2[Config 2] C2 <--> C3[Config 3] end Mongos1[Mongos Router] -->|route| P1 Mongos1 -->|route| P2 Mongos1 -->|métadonnées| C1 App[Application] --> Mongos1 end style App fill:#13AA52,color:white,stroke:#0d6e0d style Mongos1 fill:#2c3e50,color:white style C1,C2,C3 fill:#5d9cec,color:white style P1,P2 fill:#48cfad,color:white style S1a,S1b,S2a,S2b fill:#a0d468,color:whiteFigure 1 : Architecture MongoDB avec Sharding et RéplicationMongoDB est conçu pour être hautement évolutif et disponible. Voici ses composants clés :
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#e1f5e1', 'primaryTextColor': '#0d6e0d', 'primaryBorderColor': '#13AA52'}}}%% classDiagram class BaseDeDonnees { +string nom +Collection[] collections } class Collection { +string nom +Document[] documents +createIndex() +find() +insertOne() +updateMany() +aggregate() } class Document { +ObjectId _id +any champs +Date dateCreation +save() +update() +delete() } BaseDeDonnees "1" *-- "0..*" Collection : contient Collection "1" *-- "0..*" Document : contientFigure 2 : Modèle de données de MongoDBStructure de base
Document
Unité de base des données, stockée en format BSON (binaire JSON). Peut contenir des tableaux et des documents imbriqués.
Collection
Groupe de documents, équivalent à une table dans les bases relationnelles. Pas de schéma imposé.
Base de données
Conteneur pour les collections, avec son propre ensemble de fichiers sur le système de fichiers.
Structure de base
- Document : Unité de base en BSON (comme JSON mais binaire)
- Collection : Groupe de documents (équivalent aux tables SQL)
- Base de données : Conteneur logique pour les collections
- Schéma dynamique : Pas de structure fixe imposée
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#e1f5e1', 'primaryTextColor': '#0d6e0d', 'primaryBorderColor': '#13AA52'}}}%% graph TD classDef database fill:#13AA52,color:white,stroke:#0d6e0d; classDef collection fill:#5d9cec,color:white,stroke:#2c3e50; classDef document fill:#a0d468,color:white,stroke:#5d7c1d; %% Base de données DB[(Base de données)]:::database %% Collection Utilisateurs DB --> C1[Utilisateurs]:::collection C1 --> D1["{\n _id: ObjectId('...')\n nom: 'Dupont'\n email: 'jean@exemple.com'\n }"]:::document %% Collection Produits DB --> C2[Produits]:::collection C2 --> P1["{\n _id: ObjectId('...')\n nom: 'Ordinateur'\n prix: 999.99\n }"]:::document %% Légende L1[Base de données]:::database L2[Collection]:::collection L3[Document]:::documentFigure 3 : Structure hiérarchique de MongoDBLégende :
Base de donnéesCollectionDocument (BSON) -
Structure d'une base et organisation des données
%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#e1f5e1', 'primaryTextColor': '#0d6e0d', 'primaryBorderColor': '#13AA52'}}}%% flowchart TD classDef database fill:#13AA52,color:white,stroke:#0d6e0d; classDef collection fill:#5d9cec,color:white,stroke:#2c3e50; classDef document fill:#a0d468,color:white,stroke:#5d7c1d; subgraph "Base de données MongoDB" direction TB DB[("fa:fa-database Base de données")]:::database subgraph "Collections" C1["fa:fa-folder Collection Utilisateurs"]:::collection C2["fa:fa-folder Collection Commandes"]:::collection C3["fa:fa-folder Collection Produits"]:::collection end subgraph "Documents (Format BSON)" D1["{\n _id: ObjectId('...'),\n nom: 'Jean Dupont',\n email: 'jean@exemple.com'\n }"]:::document D2["{\n _id: ObjectId('...'),\n produit: 'Ordinateur',\n prix: 999.99,\n stock: 15\n }"]:::document end DB --> C1 & C2 & C3 C1 --> D1 C2 --> D2 end %% Légende subgraph " " direction TB L1[Base de données]:::database L2[Collection]:::collection L3[Document]:::document endFigure 3 : Structure hiérarchique de MongoDBLégende :
Base de donnéesCollectionDocument (BSON)
Exercices, examens et projets
Atelier MongoDB
Concevoir un schéma documentaire et manipuler une collection.
Obligatoire ConsulterExamen MongoDB
Évaluer les requêtes, agrégations, indexations et transactions.
Obligatoire ConsulterProjet MongoDB
Développer une API documentaire avec données de démonstration.
Livrables :
- Schéma
- API
- Jeu de données