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

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

Comment se connecter au Mongo Shell en local ?

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"

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

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

Comment se connecter au Mongo Shell de MongoDB Atlas?

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:

connectez vous à votre espace pour récupérer la string de connexion au shell à distance

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

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:

Comment lister les bases de données existantes ?

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

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

Mongo Shell: Comment créer une base de données?

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.

la commande use permet de sélectionner ou de créer une base de données via le shell mongo

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

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

Comment lister les collections présentes?

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

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

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.

Comment créer une collection ?

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.

Comment effacer une collection?

Pour supprimer une collection:

db.nomDeLaCollection.drop()

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

Comment lister les index sur la collection ?

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

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

Comment créer un index sur la collection ?

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

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

la méthode createIndex permet de créer un nouvel index sur une collection depuis le shell

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.

Comment supprimer un index sur la collection ?

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

Derniers articles

Dans l'univers du Big Data et du Cloud, Snowflake a vu le jour en étant le premier fournisseur d'un Data Warehouse sur le cloud 100% scalable. Dans cet article, découvrez ce qu'est un Data Warehouse et en quoi Snowflake est une solution innovante pour les entreprises.

Souvent portée par une équipe d'analystes, la QA vient supporter l'équipe tech pour assurer que les évolutions en cours de développement et récemment déployés ne viennent pas perturber l'application. Dans cet article, découvrez comment les méthodes Shift-Left et Shift-Right viennent se complémenter pour assurer un bon niveau de qualité du logiciel déployé.

Docker Desktop est le client permettant de faire tourner des containers depuis son poste. Découvre ce tutoriel pour installer Docker sur ton Mac et faire tourner tes premiers containers.

Docker Desktop est le client permettant de faire tourner des containers depuis son poste. Découvre ce tutoriel pour installer Docker sur ton PC Windows et faire tourner tes premiers containers.

Recruter un développeur passe forcément par une évaluation technique de ses compétences. Comment intégrer un test technique dans un processus d'embauche, suivant le niveau de seniorité ?

Mardi 15 Juin 2021, Vercel a dévoilé la version 11 du framework Next.js. Cette nouvelle version apporte des optimisations sur le plan des performances mais facilite également la collaboration entre développeurs et entre les différents partis prenants du projet.

Les Jobs