MongoDB List Databases: listar bases de datos

Además del comando MongoDB List Databases, hay otras alternativas para listar bases de datos. List Databases puede ser modificado mediante parámetros.

List Databases y sus alternativas

Aunque MongoDB funciona de forma diferente a los sistemas de gestión de bases de datos relacionales como MySQL, la clave para una gestión óptima de este sistema de base de datos NoSQL es tener una buena visión general de todas las operaciones y datos. Por esta razón, el sistema ofrece varios comandos de MongoDB para comprobar los documentos almacenados.

Con el comando MongoDB List Collections es posible listar colecciones, mientras que List Databases se utiliza para listar bases de datos. Este último comando no solo retorna los nombres de las distintas bases de datos, sino que también proporciona información valiosa sobre la asignación de memoria y sus especificaciones. Aquellos que no quieran utilizar el comando MongoDB List Databases también pueden recurrir a las alternativas disponibles en función del uso que se le quiera dar.

Estructura y filtro del comando List Databases

El comando List Databases te muestra todas las bases de datos disponibles y te proporciona algunas estadísticas básicas. De este modo, puedes tener una visión general y saber si necesitas crear bases de datos adicionales con el comando MongoDB Create Database o eliminar alguna con el comando MongoDB Drop Database. La sintaxis del comando es la siguiente:

db.adminCommand ( { listDatabases: 1 } )

List Databases dispone de cuatro parámetros opcionales que pueden utilizarse para hacer una consulta o lista aún más precisa:

  • filtro: este documento te permite buscar con mayor precisión. Utiliza esta opción para filtrar los resultados de la búsqueda y así excluir determinadas bases de datos desde el principio. Los parámetros de filtro permitidos son name, sizeOnDisk, empty y shards.
  • nameOnly: con esta opción se determina si solo se deben emitir los nombres de las bases de datos o también información adicional. nameOnly es un valor booleano, es decir, puede tomar un valor true o false.
  • authorisedDatabases: authorisedDatabases también es un valor booleano. Con esta opción puedes determinar qué bases de datos se muestran a los diferentes usuarios. Por ejemplo, puedes evitar que personas no autorizadas obtengan una visión general de todas las bases de datos.
  • comentario: también puedes añadir un comentario al comando. El comentario puede tener cualquier formato BSON que cumpla con los requisitos.

Ejemplo de List Databases

La mejor manera de entender cómo funciona el comando List Databases y sus parámetros es mediante un ejemplo. Para ello, imaginemos las bases de datos de una empresa. Si introduces el comando en cuestión sin mayor detalle, te aparecerá un resultado parecido a este:

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

List Databases con nameOnly

Si ahora cambias el valor nameOnly a “true”, el resultado que obtienes de List Databases tendrá el siguiente aspecto:

db.adminCommand({listDatabases: 1, nameOnly: true})
{
"databases" : [
{
"name" : "admin",
},
{
"name" : "team",
},
{
"name" : "clientes_españa",
}
{
"name" : "clientes_francia",
}
],
"ok" : 1
}

List Databases con Filter

Puede serte útil especificar y concretar más tus criterios de búsqueda para el comando List Databases, especialmente si utilizas un gran número de bases de datos. En el siguiente ejemplo, únicamente mostraremos las bases de datos que empiecen por las letras “cli”:

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

Alternativas a List Databases

Además de List Databases, MongoDB dispone de otras alternativas para mostrar las bases de datos disponibles.

Opción 1: show dbs y show databases

Un método muy sencillo para obtener una rápida visión general de tus bases de datos es el comando MongoDB show dbs. Se puede utilizar para listar todas las MongoDB Databases disponibles:

>show dbs
admin 0.007GB
team 0.013GB
clientes_españa 0.053GB
clientes_francia 0.027GB

El comando show databases funciona de la misma manera:

>show databases
admin 0.007GB
team 0.0013GB
clientes_españa 0.053GB
clientes_francia 0.027GB
Nota

Ambos comandos no reconocerán las bases de datos que no tengan contenido.

Opción 2: get.DBNames

La función db.getMongo().getDBNames() también es una buena alternativa al comando List Databases. Aunque no obtenga ninguna información adicional, esta función es más que suficiente para obtener una buena visión general. El resultado es el siguiente:

>db.getMongo().getDBNames()
[
"admin",
"team",
"clientes_españa",
"clientes_francia"
]
Page top