MongoDB: List Collections y otras opciones para listar

Hay cuatro formas diferentes de consultar o listar colecciones en MongoDB: List Collections, Show Collections, db.getCollectionNames() y db.getCollectionInfos(). List Collections, el comando más común, te muestra todos los nombres y las opciones que tienes en tus listas.

Mostrar colecciones como listas en MongoDB

El sistema de gestión de bases de datos NoSQL conocido como MongoDB se caracteriza por su gran flexibilidad y escalabilidad. A diferencia de, por ejemplo, MySQL, el sistema no se basa en tablas, sino que almacena los datos como documentos dentro de colecciones. Puedes crear dichas colecciones con el comando MongoDB Create Collection y eliminarlas con el comando MongoDB Drop Collection.

Para obtener una visión general de todas las colecciones, el sistema consta de varios comandos MongoDB. Si quieres mostrar varias o todas las colecciones, puedes optar entre los comandos List Collections y Show Collections o las funciones db.getCollectionNames() y db.getCollectionInfos().

El comando List Collections

El comando MongoDB List Collections es una forma muy práctica de mostrar todas o algunas colecciones. El comando muestra todos los nombres y opciones de cada una de las listas, pudiendo condicionar el resultado en función de varios parámetros.

Sintaxis de List Collections

El comando List Collections tiene la siguiente estructura:

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

Los cuatro parámetros opcionales que podemos introducir en List Collections son los siguientes:

  • filtro: con este documento se personaliza la consulta.
  • nameOnly: se trata de un valor booleano que determina si se debe emitir únicamente el nombre de la colección buscada o con información a mayores.
  • authorisedCollections: con este valor booleano se limita el acceso a la colección y se permite acceso solo a los usuarios con los derechos pertinentes.
  • comentario: esta opción te permite describir o delimitar con más detalle la consulta.

Ejemplo de aplicación para List Collections

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 información disponible. 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 alternativa para listar: Show Collections

El comando Show Collections es una buena opción si solamente buscas obtener una rápida visión general de las colecciones de tu base de datos actual. Las colecciones de MongoDB también pueden ser listadas con este comando. Para ello, primero hay que acceder a la base de datos que contiene las colecciones 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 alternativa para listar: db.getCollectionNames()

La función db.getCollectionNames() también es una buena opción para echar un vistazo rápido a las colecciones de tu base de datos. Esta función únicamente obtiene los nombres de las diferentes colecciones y es particularmente útil si solo quieres listar unas pocas colecciones de MongoDB. La consulta y su resultado tienen el siguiente aspecto:

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

Tercera alternativa para listar: db.getCollectionInfos()

La función db.getCollectionInfos() nos permite tener una visión más detallada de las colecciones en MongoDB. Esta ofrece, además del nombre de la colección, toda la información relevante sobre ella. Para la primera colección, que hemos estado utilizando 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_"
}
},
Page top