Commandes d'Administration MongoDB Essentielles pour Débutants
MongoDB, une base de données de documents NoSQL de premier plan, est reconnue pour sa flexibilité et son évolutivité. Alors que les développeurs se concentrent souvent sur les opérations CRUD (Créer, Lire, Mettre à jour, Supprimer), une gestion efficace de l'environnement de la base de données repose fortement sur la compréhension des commandes administratives essentielles. Ce guide présente aux débutants les commandes de base nécessaires à la gestion des bases de données, à l'administration des utilisateurs et aux contrôles de santé du système, garantissant ainsi que votre instance MongoDB fonctionne sans problème et en toute sécurité.
Maîtriser ces tâches administratives est crucial pour quiconque passe d'un simple développement local à des environnements de production. Nous explorerons comment interagir avec le shell mongosh pour gérer les bases de données, les collections, les utilisateurs et effectuer les diagnostics système nécessaires.
Accéder au Shell MongoDB (mongosh)
L'interface principale pour exécuter des commandes administratives est le Shell MongoDB, généralement accessible à l'aide de la commande mongosh. C'est là que vous exécutez des commandes basées sur JavaScript directement sur votre instance MongoDB.
Pour vous connecter à une instance MongoDB locale s'exécutant sur le port par défaut (27017), tapez simplement :
mongosh
Une fois connecté, vous verrez l'invite >, indiquant que vous êtes prêt à émettre des commandes.
Commandes de Gestion de Base de Données
Gérer la base de données que vous utilisez actuellement et visualiser les bases de données existantes sont des tâches administratives fondamentales.
Lister Toutes les Bases de Données
Pour voir une liste de toutes les bases de données actuellement présentes sur le serveur MongoDB, utilisez la commande show dbs :
> show dbs
admin 40.00 KiB
config 72.00 KiB
local 72.00 KiB
myAppDB 100.00 KiB
Changer de Base de Données
Avant de pouvoir créer une base de données ou une collection, vous devez basculer le contexte vers la base de données souhaitée à l'aide de la commande use. Si la base de données n'existe pas, MongoDB la créera implicitement lors de la première insertion de données.
> use myAppDB
switched to db myAppDB
Afficher la Base de Données Actuelle
Pour confirmer dans quel contexte de base de données vous opérez actuellement, utilisez db :
> db
myAppDB
Supprimer une Base de Données
Avertissement : Cette action supprime définitivement toutes les données de la base de données spécifiée. Utilisez-la avec une extrême prudence, surtout dans les environnements de production.
Pour supprimer la base de données actuelle (celle renvoyée par db) :
> db.dropDatabase()
{ "dropped" : "myAppDB", "ok" : 1 }
Commandes de Gestion de Collection
Les collections sont analogues aux tables dans les bases de données relationnelles. Les gérer est simple en utilisant le raccourci de l'objet db.
Lister les Collections
Lorsque vous utilisez une base de données spécifique, listez toutes les collections qu'elle contient à l'aide de show collections (ou de l'équivalent db.getCollectionNames() dans les versions plus anciennes) :
> show collections
users
products
orders
Créer des Collections
Les collections sont souvent créées automatiquement lors de la première insertion. Cependant, vous pouvez en créer une explicitement à l'aide de db.createCollection() pour contrôler les règles de validation ou le plafonnement.
// Création d'une collection standard nommée 'logs'
> db.createCollection("logs")
{ "ok" : 1 }
Supprimer une Collection
Pour supprimer entièrement une collection :
> db.logs.drop()
true
Administration des Utilisateurs et de la Sécurité
Pour toute base de données destinée à une utilisation en production, sécuriser l'accès via l'authentification des utilisateurs est obligatoire. La gestion des utilisateurs est généralement effectuée dans la base de données admin ou dans la base de données spécifique où l'utilisateur doit avoir des autorisations.
Basculer vers la Base de Données Admin pour la Création d'Utilisateur
Il est de pratique courante de créer des utilisateurs administratifs dans la base de données admin, bien que des utilisateurs basés sur des rôles puissent être créés dans des bases de données d'application.
> use admin
switched to db admin
Créer un Utilisateur
Utilisez db.createUser() pour ajouter un nouvel utilisateur. Cela nécessite de spécifier le nom d'utilisateur, un mot de passe sécurisé et les rôles attribués.
> db.createUser(
... {
... user: "appAdmin",
... pwd: passwordPrompt(), // Demande le mot de passe de manière sécurisée
... roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWrite" ]
... }
... )
- Conseil : L'utilisation de
passwordPrompt()est fortement recommandée par rapport à l'intégration de mots de passe en texte clair dans les scripts.
Lister les Utilisateurs
Pour voir les utilisateurs existants dans la base de données actuelle :
> show users
Surveillance et Diagnostics du Système
Les administrateurs ont besoin de moyens pour vérifier la santé, l'état et la configuration de l'instance MongoDB en cours d'exécution.
Vérifier l'État du Serveur
La commande serverStatus renvoie un document complet détaillant les statistiques sur le fonctionnement du serveur, y compris l'utilisation de la mémoire, les connexions et les opérations.
> db.serverStatus()
// La sortie sera un grand document JSON contenant des métriques.
Afficher les Connexions Actuelles
Pour voir les connexions client actives, vous pouvez interroger la commande currentOp ou regarder dans la sortie de serverStatus sous la section des connexions. Une façon directe d'afficher les opérations actuelles est :
> db.currentOp()
Vérifier la Configuration
Pour afficher les paramètres de configuration actuellement appliqués à l'instance :
> db.getMongo().getDB('admin').runCommand({ getParameter: 1, all: 1 })
Résumé et Prochaines Étapes
Ces commandes essentielles — couvrant le changement de base de données, la gestion des collections, la création d'utilisateurs et la surveillance de base — constituent le fondement d'une administration MongoDB efficace. Bien que mongosh fournisse un retour immédiat, une surveillance avancée nécessite souvent une intégration avec MongoDB Compass ou l'utilisation de l'interface MongoDB Atlas pour les diagnostics visuels.
Meilleure Pratique : Connectez-vous toujours avec des identifiants et restreignez les rôles d'utilisateur aux autorisations minimales nécessaires (Principe du Moindre Privilège).
Commencez à pratiquer ces commandes dans un environnement non-production pour acquérir de la confiance avant de gérer des magasins de données critiques.