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