Hay cuatro formas di­fe­re­n­tes de consultar o listar co­le­c­cio­nes en MongoDB: List Co­lle­c­tio­ns, Show Co­lle­c­tio­ns, db.ge­t­Co­lle­c­tio­n­Na­mes() y db.ge­t­Co­lle­c­tio­nI­n­fos(). List Co­lle­c­tio­ns, el comando más común, te muestra todos los nombres y las opciones que tienes en tus listas.

Mostrar co­le­c­cio­nes como listas en MongoDB

El sistema de gestión de bases de datos NoSQL conocido como MongoDB se ca­ra­c­te­ri­za por su gran fle­xi­bi­li­dad y es­ca­la­bi­li­dad. A di­fe­re­n­cia de, por ejemplo, MySQL, el sistema no se basa en tablas, sino que almacena los datos como do­cu­me­n­tos dentro de co­le­c­cio­nes. Puedes crear dichas co­le­c­cio­nes con el comando MongoDB Create Co­lle­c­tion y eli­mi­nar­las con el comando MongoDB Drop Co­lle­c­tion.

Para obtener una visión general de todas las co­le­c­cio­nes, el sistema consta de varios comandos MongoDB. Si quieres mostrar varias o todas las co­le­c­cio­nes, puedes optar entre los comandos List Co­lle­c­tio­ns y Show Co­lle­c­tio­ns o las funciones db.ge­t­Co­lle­c­tio­n­Na­mes() y db.ge­t­Co­lle­c­tio­nI­n­fos().

El comando List Co­lle­c­tio­ns

El comando MongoDB List Co­lle­c­tio­ns es una forma muy práctica de mostrar todas o algunas co­le­c­cio­nes. El comando muestra todos los nombres y opciones de cada una de las listas, pudiendo co­n­di­cio­nar el resultado en función de varios pa­rá­me­tros.

Sintaxis de List Co­lle­c­tio­ns

El comando List Co­lle­c­tio­ns tiene la siguiente es­tru­c­tu­ra:

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

Los cuatro pa­rá­me­tros op­cio­na­les que podemos in­tro­du­cir en List Co­lle­c­tio­ns son los si­guie­n­tes:

  • filtro: con este documento se pe­r­so­na­li­za la consulta.
  • nameOnly: se trata de un valor booleano que determina si se debe emitir úni­ca­me­n­te el nombre de la colección buscada o con in­fo­r­ma­ción a mayores.
  • au­tho­ri­se­d­Co­lle­c­tio­ns: con este valor booleano se limita el acceso a la colección y se permite acceso solo a los usuarios con los derechos pe­r­ti­ne­n­tes.
  • co­me­n­ta­rio: esta opción te permite describir o delimitar con más detalle la consulta.

Ejemplo de apli­ca­ción para List Co­lle­c­tio­ns

El comando se puede utilizar como se ve en el siguiente ejemplo:

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

La salida es un cursor con la in­fo­r­ma­ción di­s­po­ni­ble. He aquí un ejemplo:

"cursor" : {
"id" : NumberLong (0),
"ns" : "lista_de_clientes.$cmd.listCollections",
"firstBatch" : [
{
"name" : "lista.españa",
"type" : "collection"
},
{
"name" : "lista.francia",
"type" : "collection"
},
{
"name" : "lista.italia ",
"type" : "collection"
}
]
},
"ok" : 1
}

Primera al­te­r­na­ti­va para listar: Show Co­lle­c­tio­ns

El comando Show Co­lle­c­tio­ns es una buena opción si solamente buscas obtener una rápida visión general de las co­le­c­cio­nes de tu base de datos actual. Las co­le­c­cio­nes de MongoDB también pueden ser listadas con este comando. Para ello, primero hay que acceder a la base de datos que contiene las co­le­c­cio­nes y luego hacer la consulta. El resultado que se obtiene es el siguiente:

>use lista_de_clientes
>show collections
lista.españa
lista.francia
lista.italia

Segunda al­te­r­na­ti­va para listar: db.ge­t­Co­lle­c­tio­n­Na­mes()

La función db.ge­t­Co­lle­c­tio­n­Na­mes() también es una buena opción para echar un vistazo rápido a las co­le­c­cio­nes de tu base de datos. Esta función úni­ca­me­n­te obtiene los nombres de las di­fe­re­n­tes co­le­c­cio­nes y es pa­r­ti­cu­la­r­me­n­te útil si solo quieres listar unas pocas co­le­c­cio­nes de MongoDB. La consulta y su resultado tienen el siguiente aspecto:

>db.getCollectionNames();
[
"lista.españa",
"lista.francia",
"lista.italia"
]

Tercera al­te­r­na­ti­va para listar: db.ge­t­Co­lle­c­tio­nI­n­fos()

La función db.ge­t­Co­lle­c­tio­nI­n­fos() nos permite tener una visión más detallada de las co­le­c­cio­nes en MongoDB. Esta ofrece, además del nombre de la colección, toda la in­fo­r­ma­ción relevante sobre ella. Para la primera colección, que hemos estado uti­li­za­n­do como ejemplo, el resultado sería el siguiente:

>db.getCollectionInfos();
[
{
"name" : "lista.españa ",
"type" : "collection",
"options" : {
},
"info" : {
"readOnly" : true,
"uuid" : UUID (<uuid>)</uuid>
},
"idIndex" : {
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_iod_"
}
},
Ir al menú principal