Además del comando MongoDB List Databases, hay otras al­te­r­na­ti­vas para listar bases de datos. List Databases puede ser mo­di­fi­ca­do mediante pa­rá­me­tros.

List Databases y sus al­te­r­na­ti­vas

Aunque MongoDB funciona de forma diferente a los sistemas de gestión de bases de datos re­la­cio­na­les 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 ope­ra­cio­nes y datos. Por esta razón, el sistema ofrece varios comandos de MongoDB para comprobar los do­cu­me­n­tos al­ma­ce­na­dos.

Con el comando MongoDB List Co­lle­c­tio­ns es posible listar co­le­c­cio­nes, 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 pro­po­r­cio­na in­fo­r­ma­ción valiosa sobre la asi­g­na­ción de memoria y sus es­pe­ci­fi­ca­cio­nes. Aquellos que no quieran utilizar el comando MongoDB List Databases también pueden recurrir a las al­te­r­na­ti­vas di­s­po­ni­bles en función del uso que se le quiera dar.

Es­tru­c­tu­ra y filtro del comando List Databases

El comando List Databases te muestra todas las bases de datos di­s­po­ni­bles y te pro­po­r­cio­na algunas es­ta­dí­s­ti­cas básicas. De este modo, puedes tener una visión general y saber si necesitas crear bases de datos adi­cio­na­les 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 pa­rá­me­tros op­cio­na­les que pueden uti­li­zar­se 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 re­su­l­ta­dos de la búsqueda y así excluir de­te­r­mi­na­das bases de datos desde el principio. Los pa­rá­me­tros de filtro pe­r­mi­ti­dos son name, si­zeO­n­Di­sk, 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 in­fo­r­ma­ción adicional. nameOnly es un valor booleano, es decir, puede tomar un valor true o false.
  • au­tho­ri­se­d­Da­ta­ba­ses: au­tho­ri­se­d­Da­ta­ba­ses también es un valor booleano. Con esta opción puedes de­te­r­mi­nar qué bases de datos se muestran a los di­fe­re­n­tes usuarios. Por ejemplo, puedes evitar que personas no au­to­ri­za­das obtengan una visión general de todas las bases de datos.
  • co­me­n­ta­rio: también puedes añadir un co­me­n­ta­rio al comando. El co­me­n­ta­rio puede tener cualquier formato BSON que cumpla con los re­qui­si­tos.

Ejemplo de List Databases

La mejor manera de entender cómo funciona el comando List Databases y sus pa­rá­me­tros es mediante un ejemplo. Para ello, ima­gi­ne­mos las bases de datos de una empresa. Si in­tro­du­ces 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 es­pe­ci­fi­car y concretar más tus criterios de búsqueda para el comando List Databases, es­pe­cia­l­me­n­te si utilizas un gran número de bases de datos. En el siguiente ejemplo, úni­ca­me­n­te mo­s­tra­re­mos 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
}

Al­te­r­na­ti­vas a List Databases

Además de List Databases, MongoDB dispone de otras al­te­r­na­ti­vas para mostrar las bases de datos di­s­po­ni­bles.

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 di­s­po­ni­bles:

>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 re­co­no­ce­rán las bases de datos que no tengan contenido.

Opción 2: get.DBNames

La función db.getMongo().ge­t­D­B­Na­mes() también es una buena al­te­r­na­ti­va al comando List Databases. Aunque no obtenga ninguna in­fo­r­ma­ción adicional, esta función es más que su­fi­cie­n­te para obtener una buena visión general. El resultado es el siguiente:

>db.getMongo().getDBNames()
[
"admin",
"team",
"clientes_españa",
"clientes_francia"
]
Ir al menú principal