# MongoDB : List Collections et autres méthodes de listing

Il existe quatre méthodes différentes pour lister ses collections dans [MongoDB](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/mongodb-presentation-et-comparaison-avec-mysql/) : List Collections, Show Collections, *db.getCollectionNames()* et *db.getCollectionInfos()*. La première est la plus utilisée. Elle permet d’afficher tous les noms et options de chacune des listes.

## Afficher les Collections MongoDB sous forme de liste

Le [système de gestion de base de données](https://www.ionos.fr/digitalguide/hebergement/aspects-techniques/systeme-de-gestion-de-base-de-donnees-sgbd/ "Système de gestion de base de données (SGBD)") NoSQL MongoDB se caractérise par sa **grande flexibilité et son caractère évolutif**. Contrairement à [MySQL](https://www.ionos.fr/digitalguide/serveur/know-how/quest-ce-que-mysql/ "Qu’est-ce que MySQL&nbsp;?"), le système n’utilise pas de tableaux mais stocke les données sous forme de documents dans des collections. Il est ainsi possible de créer ces collections avec la [commande MongoDB Create Collection](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/mongodb-create-collection/ "MongoDB Create Collection") et de les supprimer avec la commande [MongoDB Drop Collection](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/mongodb-drop-collection/ "MongoDB Drop Collection").

Le système propose plusieurs [commandes MongoDB](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/commandes-mongodb/ "Commandes&nbsp;MongoDB") pour afficher une **vue d’ensemble de toutes les collections**. Si vous souhaitez afficher certaines d’entre elles, ou toutes les collections, utilisez les commandes List Collections, Show Collections ou encore les méthodes *db.getCollectionNames()* et *db.getCollectionInfos()*.

## La commande List Collections

La commande MongoDB List Collections est un moyen très pratique pour afficher toutes les collections ou une partie d’entre elles. Elle affiche **tous les noms et options** des différentes listes et peut être spécifiée par plusieurs paramètres.

### Syntaxe de List Collections

Voici comment la commande List Collections se construit :

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

Les quatre paramètres facultatifs de List Collections sont :

- **filter** : adapte la requête de recherche ;
- **nameOnly** : valeur booléenne qui détermine si seul le nom de la collection concernée doit être affiché ou si des informations complémentaires doivent aussi être fournies ;
- **authorizedCollections** : valeur booléenne qui limite l’accès à la liste et ne l’autorise qu’aux utilisateurs qui disposent des droits ;
- **comment** : permet d’ajouter une description plus détaillée ou une balise de la requête de recherche.

### Exemple d’utilisation de List Collections

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

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

La sortie est alors un curseur avec les informations disponibles. À titre d’exemple, voici à quoi cela ressemble :

```none
"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
}
```

## Alternative 1 : Show Collections

Pour obtenir un aperçu rapide des collections dans votre base de données actuelle, utilisez la commande Show Collections. Cette commande permet aussi de **lister les collections MongoDB**. Pour cela, vous appelez d’abord la base de données correspondante et demandez ensuite toutes les collections. Voici à quoi ressemble la sortie :

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

## Alternative 2 : db.getCollectionNames()

Pour un aperçu rapide des collections dans votre base de données, vous pouvez aussi utiliser la méthode *db.getCollectionNames()*. Celle-ci renvoie uniquement les noms des différentes collections et se révèle particulièrement utile si vous souhaitez simplement lister certaines collections MongoDB. Voici comment se présentent la commande et la sortie :

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

## Alternative 3 : db.getCollectionInfos()

La méthode *db.getCollectionInfos()* permet d’avoir un aperçu précis sur la liste des collections MongoDB. Outre le nom, elle fournit aussi toutes les informations complémentaires pertinentes. Pour la première collection, voici à quoi cela ressemble avec notre exemple :

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


This is a markdown version of: [https://www.ionos.fr/digitalguide/sites-internet/developpement-web/mongodb-list-collections/](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/mongodb-list-collections/) for AI/LLM consumption.