skip to content

Recherche

MongoDB

Base de données MongoDB : NoSQL, documents et collections !

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/Debiansudo apt install mongodb-server mongodb-clients
🎩 CentOS/RHELsudo yum install mongodb-org
🍎 macOS (Homebrew)brew install mongodb-community
🐳 Dockerdocker run -d mongo:7
🏢 Version officiellemongodb.com/try/download

⚙️ Configuration de base

📌 Action🧠 Commande
▶️ Démarrer MongoDBsudo systemctl start mongod
🔄 Activer au démarragesudo systemctl enable mongod
🔗 Se connectermongosh (ou mongo)
📋 Voir les basesshow dbs
🔗 Utiliser une baseuse monapp
🚪 Quitter mongoshquit() (ou Ctrl+C)

🗄️ Gestion des bases de données

📌 Action🧠 Commande
📋 Lister les basesshow dbs
🆕 Créer/utiliser une baseuse monapp
📊 Base courantedb.getName()
🗑️ Supprimer la base courantedb.dropDatabase()
📊 Statistiques de la basedb.stats()
💾 Taille de la basedb.stats().dataSize

📋 Gestion des collections

📌 Action🧠 Commande
📋 Lister les collectionsshow collections
🆕 Créer une collectiondb.createCollection("users")
🗑️ Supprimer une collectiondb.users.drop()
📊 Statistiques collectiondb.users.stats()
📖 Compter les documentsdb.users.countDocuments()
🔍 Premier documentdb.users.findOne()

👥 Gestion des utilisateurs

📌 Action🧠 Commande
👤 Créer un admindb.createUser({user:"admin", pwd:"motdepasse", roles:["root"]})
👤 Créer utilisateur lecturedb.createUser({user:"lecteur", pwd:"mdp", roles:["read"]})
👤 Créer utilisateur écrituredb.createUser({user:"editeur", pwd:"mdp", roles:["readWrite"]})
📋 Lister les utilisateursdb.getUsers()
🗑️ Supprimer un utilisateurdb.dropUser("lecteur")
🔐 Activer l’authentificationÉditer /etc/mongod.conf: security.authorization: enabled

💾 Sauvegarde et restauration

📌 Action🧠 Commande
💾 Sauvegarder une basemongodump --db monapp --out ./backup/
💾 Sauvegarder toutmongodump --out ./backup/
📥 Restaurer une basemongorestore --db monapp ./backup/monapp/
📥 Restaurer toutmongorestore ./backup/
🗜️ Export JSONmongoexport --db monapp --collection users --out users.json
📦 Import JSONmongoimport --db monapp --collection users --file users.json

🔍 Monitoring et debug

📌 Action🧠 Commande
📊 Statut du serveurdb.serverStatus()
🔗 Connexions activesdb.serverStatus().connections
🐌 Profiler (requêtes lentes)db.setProfilingLevel(2)
📈 Voir profildb.system.profile.find()
💾 Utilisation mémoiredb.serverStatus().mem
🔧 Opérations en coursdb.currentOp()