En plus de la commande MongoDB List Databases, il existe des al­ter­na­tives pour afficher les bases de données. Il est aussi possible de spécifier List Databases avec dif­fé­rents pa­ra­mètres.

List Databases et ses al­ter­na­tives

Si MongoDB se dif­fé­ren­cie des systèmes de gestion de bases de données tra­di­tion­nels comme MySQL dans son fonc­tion­ne­ment, la solution NoSQL requière une bonne vue d’ensemble des opé­ra­tions et des données pour une gestion optimale. C’est pourquoi le système propose dif­fé­rentes commandes MongoDB pour contrôler les documents déposés.

La commande MongoDB List Col­lec­tions permet de lister des col­lec­tions, tandis que List Databases liste les bases de données. Cette dernière commande ne renvoie pas seulement les noms des dif­fé­rentes bases de données, elle fournit aussi des in­for­ma­tions pré­cieuses sur l’uti­li­sa­tion de la mémoire et les pa­ra­mètres. Si préférez utiliser d’autres commandes MongoDB que List Databases, il existe des al­ter­na­tives en fonction de l’uti­li­sa­tion souhaitée.

Structure et filtre de la commande List Databases

La commande List Databases affiche toutes les bases de données dis­po­nibles avec quelques sta­tis­tiques 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 sup­plé­men­taires 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 pa­ra­mètres op­tion­nels pour filtrer plus pré­ci­sé­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 pa­ra­mètres de filtre autorisés sont name, si­zeOn­Disk, 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 in­for­ma­tions sup­plé­men­taires doivent également être indiquées ;
  • au­tho­ri­zed­Da­ta­bases : valeur booléenne, permet de définir les bases de données affichées selon les dif­fé­rents uti­li­sa­teurs. Ainsi, il est par exemple possible d’exclure des personnes non au­to­ri­sées d’avoir accès aux bases de données ;
  • comment : permet d’insérer un com­men­taire de commande sous n’importe quel format BSON approprié.

Exemples de List Databases

La meilleure façon de com­prendre le fonc­tion­ne­ment de la commande List Databases et de ses pa­ra­mètres est de se baser sur un exemple. Pour cela, imaginons les bases de données d’une en­tre­prise. Si vous entrez la commande cor­res­pon­dante sans autre spé­ci­fi­ca­tion, 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 com­men­cent 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
}

Al­ter­na­tives à List Databases

Outre List Databases, MongoDB offre d’autres pos­si­bi­li­tés pour afficher les bases de données dis­po­nibles.

Option 1 : show dbs et show databases

Une méthode très simple pour lister ra­pi­de­ment vos bases de données est la commande MongoDB show dbs. Elle affiche toutes les databases MongoDB dis­po­nibles :

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

La commande Show databases fonc­tionne 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 re­con­nais­sent que les bases de données qui con­tien­nent des documents.

Option 2 : get.DBNames

La méthode db.getMongo().getDB­Names() constitue aussi une al­ter­na­tive à la commande List Databases. Sous MongoDB, elle ne fournit certes aucune in­for­ma­tion sup­plé­men­taire mais suffit à donner une vue d’ensemble. Voici à quoi ressemble la sortie :

>db.getMongo().getDBNames()
[
"admin",
"team",
"clients_france",
"clients_allemagne"
]
Aller au menu principal