Mongo Shell: Les commandes à connaître pour manipuler MongoDB depuis le terminal

Rayed Benbrahim

Publié le 6 août 2020

Manipuler votre base de données MongoDB peut se faire depuis votre terminal, grâce au Mongo Shell, ou depuis une interface graphique telle que MongoDB Compass.

Exemple de requête sur le Shell Mongo

Bien que l’interface graphique apporte un certain confort, Mongo Shell, lorsque vous le maitrisez, vous permet d’aller bien plus vite dans vos requêtes.

Dans cet article, nous allons voir quelles sont les commandes Mongo Shell à connaître pour être performant:

Accéder au Mongo Shell

Avant toute chose, assurez-vous d’avoir installé correctement MongoDB sur votre machine. Si ce n’est pas déjà fait, vous pouvez vous référer aux guides d’installation suivant votre OS:

Pour accéder au Mongo Shell, tapez la commande suivante:

mongo

Accédez au shell mongo avec la commande "mongo"

Vous avez maintenant accès au Mongo Shell de votre MongoDB local.

Il se peut que vous souhaitiez accéder au Mongo Shell d'une instance mongoDB hébergée sur MongoDB Atlas, le service cloud de MongoDB.

Commencez par aller récupérer l'URL de connexion depuis votre interface MongoDB Atlas:

Dans le cas d'une DBaaS chez Mongo Atlas, connectez vous à votre espace pour récupérer la string de connexion au shell à distance

Retournez sur votre terminal et collez la connection string fourni par Atlas juste après la commande mongo

mongo "votreConnectionString"

Pour vous connecter à un shell à distance, tapez la commande "mongo" suivie de votre connection string

Les opérations Mongo Shell sur la base de données

Une fois connecté au Shell, vous pouvez exécuter des requêtes MongoDB:

Pour lister les bases de données existantes, utilisez la commande suivante:

show dbs

Cette commande va vous lister l'ensemble des bases de données stockées sur votre instance MongoDB ainsi que le poids total de chacune d'entre elles:

Pour lister vos bases de données dans votre serveur Mongo, tapez la commande show dbs dans le shell mongo

En SQL, il faut d'abord créer une base de données en utilisant CREATE DATABASE avant de l'utiliser via la commande USE nomDeLaBaseDeDonnées.

Dans le Mongo Shell, vous utiliserez seulement la commande use nomDeLaBDD. Si celle-ci existe, il va la sélectionner, sinon il va la créer.

Sélectionnez ou créez une base de données en utilisant la commande use

Pour vérifier que votre base de données est bien créée, vous pouvez saisir la commande db dans le shell.

Celle-ci devrait vous retourner le nom de la base de données nouvellement créée.

Pour supprimer une base de données de votre instance MongoDB, il faut dans un premier temps la sélectionner en utilisant la commande use nomDeLaBDD. Vous pourrez ensuite utiliser la méthode dropDatabase() pour l'effacer.

la méthode dropDatabase permet de supprimer une base de données de votre serveur

À l’issue de l'opération, MongoDB vous affichera le nom de la base de données effacée et le statut. S'il est à 1, c'est que la base de données a correctement été supprimée.

Vous pouvez vérifier en utilisant la commande show dbs pour vous assurer qu'elle ne contient plus la base de données que vous vouliez supprimer.

Mongo Shell: les opérations sur les collections

Pour avoir une liste rapide des collections contenues dans la base de données vous pouvez utiliser la commande.

show collections

la commande show collections vous permet de récupérer l'ensemble des collections dans votre base de données

Si vous souhaitez en revanche avoir plus de détail sur chaque collection, vous pouvez utiliser la commande db.getCollectionInfos()

La commande db.getCollectionInfos() permet d'avoir plus de détails sur chaque collection

Cette commande vous donnera des informations plus détaillées sur votre collection, notamment les index.

Pour créer une collection depuis le Mongo Shell, utilisez la commande

db.createCollection('nomDeLaCollection')

Vous pouvez également passer une série d'options pour définir plus spécifiquement certaines règles pour cette collection.

Pour supprimer une collection:

db.nomDeLaCollection.drop()

Cette commande effacera la collection et les items qu'elle contient.

Pour améliorer les performances des requêtes, une collection peut avoir plusieurs index. Afin de récupérer la liste de ces index vous pouvez utiliser la commande suivante:

db.nomDeLaCollection.getIndexes()

La requête getIndexes permet de récupérer la liste des indexes liés à cette collection

Pour créer un index, utilisez la méthode:

db.nomDeLaCollection.createIndex({clés}, options)

Pour créer un index depuis le shell mongo, utilisez la méthode createIndex

Dans cet exemple, j'ai créé un index composé du champ name et du champ slug.

Si vous voulez en créer plusieurs d'un coup, vous avez également la méthode:

db.nomDeLaCollection.createIndexes()

La création d'index est une opération délicate sur laquelle il ne vaut mieux pas se tromper. Vous pouvez utiliser la commande du Mongo Shell mais si vous n'êtes pas très à l'aise avec les commandes shell, je vous suggère d'envisager l'interface graphique sur Mongo Compass ou l'interface web de MongoDB Atlas.

Si vous voulez en supprimer un index de la collection, utilisez la méthode:

db.nomDeLaCollection.dropIndex("nomDeIndex")

Il faudra récupérer le nom de l'index en faisant un getIndexes() pour pouvoir l'utiliser dans votre requête de suppression.

Les requêtes sur les documents

Maintenant que vous savez manipuler le Shell, vous pouvez exécuter toutes les requêtes MongoDB. Je vous invite à consulter l'article concernant les requêtes MongoDB à connaître pour manipuler les documents.

Aller plus loin