MongoDB List Databases : comment lister vos bases de données ?

En plus de la commande MongoDB List Databases, il existe des alternatives pour afficher les bases de données. Il est aussi possible de spécifier List Databases avec différents paramètres.

List Databases et ses alternatives

Si MongoDB se différencie des systèmes de gestion de bases de données traditionnels comme MySQL dans son fonctionnement, la solution NoSQL requière une bonne vue d’ensemble des opérations et des données pour une gestion optimale. C’est pourquoi le système propose différentes commandes MongoDB pour contrôler les documents déposés.

La commande MongoDB List Collections permet de lister des collections, tandis que List Databases liste les bases de données. Cette dernière commande ne renvoie pas seulement les noms des différentes bases de données, elle fournit aussi des informations précieuses sur l’utilisation de la mémoire et les paramètres. Si préférez utiliser d’autres commandes MongoDB que List Databases, il existe des alternatives en fonction de l’utilisation souhaitée.

Structure et filtre de la commande List Databases

La commande List Databases affiche toutes les bases de données disponibles avec quelques statistiques de base. Cette commande permet d’avoir une vue d’ensemble pour savoir notamment s’il vous faudra créer des bases de données supplémentaires avec la commande MongoDB Create Database ou en supprimer avec la commande MongoDB Drop Database. La syntaxe de la commande est la suivante :

db.adminCommand ( { listDatabases: 1 } )

De plus, List Databases dispose de quatre paramètres optionnels pour filtrer plus précisément une liste :

  • filter : permet d’effectuer une recherche encore plus précise. Utilisez cette option pour filtrer les résultats de votre recherche et exclure ainsi d’emblée certaines bases de données. Les paramètres de filtre autorisés sont name, sizeOnDisk, empty et shards ;
  • nameOnly : valeur booléenne (true ou false), cette option permet de définir si seuls les noms des bases de données doivent être affichés ou si des informations supplémentaires doivent également être indiquées ;
  • authorizedDatabases : valeur booléenne, permet de définir les bases de données affichées selon les différents utilisateurs. Ainsi, il est par exemple possible d’exclure des personnes non autorisées d’avoir accès aux bases de données ;
  • comment : permet d’insérer un commentaire de commande sous n’importe quel format BSON approprié.

Exemples de List Databases

La meilleure façon de comprendre le fonctionnement de la commande List Databases et de ses paramètres est de se baser sur un exemple. Pour cela, imaginons les bases de données d’une entreprise. Si vous entrez la commande correspondante sans autre spécification, voici la sortie :

db.adminCommand({listDatabases: 1})
{
"databases" : [
{
"name" : "admin",
"sizeOnDisk" : <size>,</size>
"empty" : false
},
{
"name" : "team",
"sizeOnDisk" : <size>,</size>
"empty" : false
},
{
"name" : "clients_france",
"sizeOnDisk" : <size>,</size>
"empty" : false
}
],
"name" : "clients_allemagne",
"sizeOnDisk" : <size>,</size>
"empty" : false
}
],
"totalSize" : <totalsize></totalsize>
"totalSizeMb" : <totalsizemb>,</totalsizemb>
"ok" : 1
}

List Databases avec nameOnly

Si vous modifiez la valeur nameOnly en « true », voici à quoi ressemble la sortie de List Databases :

db.adminCommand({listDatabases: 1, nameOnly: true})
{
"databases" : [
{
"name" : "admin",
},
{
"name" : "team",
},
{
"name" : "clients_france",
}
{
"name" : "clients_allemagne",
}
],
"ok" : 1
}

List Databases avec Filter

Si vous utilisez un grand nombre de bases de données, il peut se révéler utile de spécifier vos critères de recherche de la commande List Databases. Dans l’exemple suivant, nous cherchons à n’afficher que les bases de données qui commencent par les lettres « cli » :

>db.adminCommand({listDatabases: 1, filter: {"name": /^cli/}})
{
"databases" : [
{
"name" : "clients_france",
"sizeOnDisk" : <size>,</size>
"empty" : false
}
],
"name" : "clients_allemagne",
"sizeOnDisk" : <size>,</size>
"empty" : false
}
],
"totalSize" : <totalsize></totalsize>
"totalSizeMb" : <totalsizemb>,</totalsizemb>
"ok" : 1
}

Alternatives à List Databases

Outre List Databases, MongoDB offre d’autres possibilités pour afficher les bases de données disponibles.

Option 1 : show dbs et show databases

Une méthode très simple pour lister rapidement vos bases de données est la commande MongoDB show dbs. Elle affiche toutes les databases MongoDB disponibles :

>show dbs
admin 0.007GB
team 0.013GB
clients_france 0.053GB
clients_allemagne 0.027GB

La commande Show databases fonctionne de la même façon :

>show databases
admin 0.007GB
team 0.0013GB
clients_france 0.053GB
clients_allemagne 0.027GB
Remarque

Les deux commandes ne reconnaissent que les bases de données qui contiennent des documents.

Option 2 : get.DBNames

La méthode db.getMongo().getDBNames() constitue aussi une alternative à la commande List Databases. Sous MongoDB, elle ne fournit certes aucune information supplémentaire mais suffit à donner une vue d’ensemble. Voici à quoi ressemble la sortie :

>db.getMongo().getDBNames()
[
"admin",
"team",
"clients_france",
"clients_allemagne"
]