Il existe quatre méthodes dif­fé­rentes pour lister ses col­lec­tions dans MongoDB : List Col­lec­tions, Show Col­lec­tions, db.get­Col­lec­tion­Names() et db.get­Col­lec­tio­nIn­fos(). La première est la plus utilisée. Elle permet d’afficher tous les noms et options de chacune des listes.

Afficher les Col­lec­tions MongoDB sous forme de liste

Le système de gestion de base de données NoSQL MongoDB se ca­rac­té­rise par sa grande flexi­bi­lité et son caractère évolutif. Con­trai­re­ment à MySQL, le système n’utilise pas de tableaux mais stocke les données sous forme de documents dans des col­lec­tions. Il est ainsi possible de créer ces col­lec­tions avec la commande MongoDB Create Col­lec­tion et de les supprimer avec la commande MongoDB Drop Col­lec­tion.

Le système propose plusieurs commandes MongoDB pour afficher une vue d’ensemble de toutes les col­lec­tions. Si vous souhaitez afficher certaines d’entre elles, ou toutes les col­lec­tions, utilisez les commandes List Col­lec­tions, Show Col­lec­tions ou encore les méthodes db.get­Col­lec­tion­Names() et db.get­Col­lec­tio­nIn­fos().

La commande List Col­lec­tions

La commande MongoDB List Col­lec­tions est un moyen très pratique pour afficher toutes les col­lec­tions ou une partie d’entre elles. Elle affiche tous les noms et options des dif­fé­rentes listes et peut être spécifiée par plusieurs pa­ra­mètres.

Syntaxe de List Col­lec­tions

Voici comment la commande List Col­lec­tions se construit :

{listCollections: 1, filter: <document>, nameOnly: <boolean>, authorizedCollections: <boolean>, comment: <any>}</any></boolean></boolean></document>

Les quatre pa­ra­mètres fa­cul­ta­tifs de List Col­lec­tions sont :

  • filter : adapte la requête de recherche ;
  • nameOnly : valeur booléenne qui détermine si seul le nom de la col­lec­tion concernée doit être affiché ou si des in­for­ma­tions com­plé­men­taires doivent aussi être fournies ;
  • au­tho­ri­zed­Col­lec­tions : valeur booléenne qui limite l’accès à la liste et ne l’autorise qu’aux uti­li­sa­teurs qui disposent des droits ;
  • comment : permet d’ajouter une des­crip­tion plus détaillée ou une balise de la requête de recherche.

Exemple d’uti­li­sa­tion de List Col­lec­tions

La commande s’utilise comme dans l’exemple ci-dessous :

db.runCommand({listCollections: 1, authorizedCollections: true, nameOnly: true})

La sortie est alors un curseur avec les in­for­ma­tions dis­po­nibles. À titre d’exemple, voici à quoi cela ressemble :

"cursor" : {
"id" : NumberLong (0),
"ns" : "listeclients.$cmd.listCollections",
"firstBatch" : [
{
"name" : "liste.france",
"type" : "collection"
},
{
"name" : "liste.france",
"type" : "collection"
},
{
"name" : "liste.italie",
"type" : "collection"
}
]
},
"ok" : 1
}

Al­ter­na­tive 1 : Show Col­lec­tions

Pour obtenir un aperçu rapide des col­lec­tions dans votre base de données actuelle, utilisez la commande Show Col­lec­tions. Cette commande permet aussi de lister les col­lec­tions MongoDB. Pour cela, vous appelez d’abord la base de données cor­res­pon­dante et demandez ensuite toutes les col­lec­tions. Voici à quoi ressemble la sortie :

>use listeclients
>show collections
liste.france
liste.allemagne 
liste.italie

Al­ter­na­tive 2 : db.get­Col­lec­tion­Names()

Pour un aperçu rapide des col­lec­tions dans votre base de données, vous pouvez aussi utiliser la méthode db.get­Col­lec­tion­Names(). Celle-ci renvoie uni­que­ment les noms des dif­fé­rentes col­lec­tions et se révèle par­ti­cu­liè­re­ment utile si vous souhaitez sim­ple­ment lister certaines col­lec­tions MongoDB. Voici comment se pré­sen­tent la commande et la sortie :

>db.getCollectionNames();
[
"liste.france",
"liste.allemagne",
"liste.italie"
]

Al­ter­na­tive 3 : db.get­Col­lec­tio­nIn­fos()

La méthode db.get­Col­lec­tio­nIn­fos() permet d’avoir un aperçu précis sur la liste des col­lec­tions MongoDB. Outre le nom, elle fournit aussi toutes les in­for­ma­tions com­plé­men­taires per­ti­nentes. Pour la première col­lec­tion, voici à quoi cela ressemble avec notre exemple :

>db.getCollectionInfos();
[
{
"name" : "liste.france",
"type" : "collection",
"options" : {
},
"info" : {
"readOnly" : true,
"uuid" : UUID (<uuid>)</uuid>
},
"idIndex" : {
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_iod_"
}
},
Aller au menu principal