MongoDB est une base de données NoSQL orientée documents qui stocke les données au format JSON (BSON) dans des collections flexibles.
🤔 Pourquoi MongoDB ?
MongoDB c’est pour quoi :
- 📄 Données JSON - Stocker direct du JSON comme en JavaScript
- 🚀 Développement rapide - Pas besoin de créer des tables à l’avance
- 🔄 Structure flexible - Les données peuvent changer de forme
- ⚡ Simple - Plus proche de la programmation
À utiliser pour :
- API REST (données JSON)
- Applications mobiles
- Stocker des logs, des événements
- Prototypes rapides
- Quand les données ne rentrent pas dans un tableau Excel
🚀 Installation
📌 Système | 🧠 Commande |
---|---|
🐧 Ubuntu/Debian | sudo apt install mongodb-server mongodb-clients |
🎩 CentOS/RHEL | sudo yum install mongodb-org |
🍎 macOS (Homebrew) | brew install mongodb-community |
🐳 Docker | docker run -d mongo:7 |
🏢 Version officielle | mongodb.com/try/download |
⚙️ Configuration de base
📌 Action | 🧠 Commande |
---|---|
▶️ Démarrer MongoDB | sudo systemctl start mongod |
🔄 Activer au démarrage | sudo systemctl enable mongod |
🔗 Se connecter | mongosh (ou mongo ) |
📋 Voir les bases | show dbs |
🔗 Utiliser une base | use monapp |
🚪 Quitter mongosh | quit() (ou Ctrl+C) |
🗄️ Gestion des bases de données
📌 Action | 🧠 Commande |
---|---|
📋 Lister les bases | show dbs |
🆕 Créer/utiliser une base | use monapp |
📊 Base courante | db.getName() |
🗑️ Supprimer la base courante | db.dropDatabase() |
📊 Statistiques de la base | db.stats() |
💾 Taille de la base | db.stats().dataSize |
📋 Gestion des collections
📌 Action | 🧠 Commande |
---|---|
📋 Lister les collections | show collections |
🆕 Créer une collection | db.createCollection("users") |
🗑️ Supprimer une collection | db.users.drop() |
📊 Statistiques collection | db.users.stats() |
📖 Compter les documents | db.users.countDocuments() |
🔍 Premier document | db.users.findOne() |
👥 Gestion des utilisateurs
📌 Action | 🧠 Commande |
---|---|
👤 Créer un admin | db.createUser({user:"admin", pwd:"motdepasse", roles:["root"]}) |
👤 Créer utilisateur lecture | db.createUser({user:"lecteur", pwd:"mdp", roles:["read"]}) |
👤 Créer utilisateur écriture | db.createUser({user:"editeur", pwd:"mdp", roles:["readWrite"]}) |
📋 Lister les utilisateurs | db.getUsers() |
🗑️ Supprimer un utilisateur | db.dropUser("lecteur") |
🔐 Activer l’authentification | Éditer /etc/mongod.conf : security.authorization: enabled |
💾 Sauvegarde et restauration
📌 Action | 🧠 Commande |
---|---|
💾 Sauvegarder une base | mongodump --db monapp --out ./backup/ |
💾 Sauvegarder tout | mongodump --out ./backup/ |
📥 Restaurer une base | mongorestore --db monapp ./backup/monapp/ |
📥 Restaurer tout | mongorestore ./backup/ |
🗜️ Export JSON | mongoexport --db monapp --collection users --out users.json |
📦 Import JSON | mongoimport --db monapp --collection users --file users.json |
🔍 Monitoring et debug
📌 Action | 🧠 Commande |
---|---|
📊 Statut du serveur | db.serverStatus() |
🔗 Connexions actives | db.serverStatus().connections |
🐌 Profiler (requêtes lentes) | db.setProfilingLevel(2) |
📈 Voir profil | db.system.profile.find() |
💾 Utilisation mémoire | db.serverStatus().mem |
🔧 Opérations en cours | db.currentOp() |