Definición
db.getCollectionInfos(filter, options)Devuelve un arreglo de documentos que contienen información sobre la colección o vista, como nombre y opciones, para la base de datos actual. Los resultados dependen del privilegio del usuario. Para más detalles, consulta Acceso requerido.
El asistente
db.getCollectionInfos()envuelve el comandolistCollections.
Sintaxis
El método db.getCollectionInfos() tiene los siguientes parámetros:
Parameter | Tipo | Descripción |
|---|---|---|
| Documento | Opcional. Un predicado de query para filtrar la lista de colecciones. Puedes especificar un predicado de query en cualquiera de los campos devueltos por |
| Documento | Optional. A document that specifies additional options for the command. For a list of available options, see Options. |
opciones
Puede especificar las opciones siguientes en el documento options de un comando db.getCollectionInfos():
Opción | Tipo | Descripción |
|---|---|---|
| booleano | Opcional. Una bandera para indicar si el comando devuelve solo el nombre y el tipo ( El valor por defecto es Cuando For an example, see Return Only Collection Names. |
| booleano | opcional. Cuando se configura en Cuando tanto
El valor por defecto es Para un usuario que tiene la acción Cuando se utiliza sin |
Compatibilidad
Este método está disponible en implementaciones alojadas en los siguientes entornos:
- MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
Nota
This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Acceso requerido
The listCollections command and its wrapper db.getCollectionInfos() require the listCollections action when access control is enforced. Users must have privileges that grant the listCollections action on the database to run listCollections.
For example, the following command grants the privilege to run db.getCollectionInfos() against the test database:
{ resource: { db: "test", collection: "" }, actions: [ "listCollections" ] }
El rol con funcionalidad incorporada read proporciona el privilegio de ejecutar listCollections para una base de datos específica.
Los usuarios sin el privilegio read necesario pueden ejecutar listCollections cuando authorizedCollections y nameOnly están configurados en true. En este caso, el comando devuelve los nombres y tipos de las colecciones donde el usuario tiene privilegios.
Por ejemplo, considere a un usuario con un rol que concede el siguiente privilegio find:
{ resource: { db: "sales", collection: "currentQuarter" }, actions: [ "find" ] }
El usuario puede ejecutar listCollections si authorizedCollections y nameOnly están configurados en true.
db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )
La operación devuelve el nombre y el tipo de la colección currentQuarter.
Sin embargo, las siguientes operaciones devuelven un error si el usuario no tiene la autorización de acceso requerida:
db.runCommand( { listCollections: 1.0, authorizedCollections: true } ) db.runCommand( { listCollections: 1.0, nameOnly: true } )
show collections
El método mongosh show collections es similar a:
db.runCommand( { listCollections: 1.0, authorizedCollections: true, nameOnly: true } )
Para los usuarios con el acceso requerido,
show collectionsenumera las colecciones no pertenecientes al sistema de la base de datos.Para los usuarios sin el acceso requerido,
show collectionssolo muestra las colecciones para las que el usuario tiene privilegios.
Comportamiento
Desconexión del cliente
If the client that issued db.getCollectionInfos() disconnects before the operation completes, MongoDB marks db.getCollectionInfos() for termination using killOp.
Restricción del estado del set de réplicas
Para que se ejecuten en un set de réplicas, las operaciones de listCollections requieren que el nodo esté en estado PRIMARY o SECONDARY. Si el nodo se encuentra en otro estado, como STARTUP2, se produce un error en la operación.
Ejemplos
Información de retorno para todas las colecciones en una base de datos
Lo siguiente devuelve información para todas las colecciones en la base de datos example:
use example db.getCollectionInfos()
[ { "name" : "employees", "type" : "collection", "options" : { "flags" : 1, "validator" : { "$or" : [ { "phone" : { "$exists" : true } }, { "email" : { "$exists" : true } } ] } }, "info" : { "readOnly" : false, "uuid" : UUID("222e18ca-4a10-4a42-a8fe-c39255cc4c55") }, "idIndex" : { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "example.employees" } }, { "name" : "products", "type" : "collection", "options" : { "flags" : 1 }, "info" : { "readOnly" : false, "uuid" : UUID("1bc898b2-3b91-45e4-9d8b-0be462d5a157") }, "idIndex" : { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "example.products" } }, { "name" : "mylogs", "type" : "collection", "options" : { "capped" : true, "size" : 256 }, "info" : { "readOnly" : true, "uuid" : UUID("8e62116d-b6a0-490a-808c-258ccb7ea947") }, "idIndex" : { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "example.mylogs" } } ]
Devolver sólo nombres de colecciones
Para devolver solo los nombres de las colecciones de la base de datos actual, especificar la opción nameOnly: true. Por ejemplo:
use example db.getCollectionInfos( {}, { nameOnly: true } )
[ { name: 'products', type: 'collection' }, { name: 'weather', type: 'timeseries' }, { name: 'system.buckets.weather', type: 'collection' }, { name: 'system.views', type: 'collection' }, { name: 'sales', type: 'collection' } ]
Devolver información para una colección concreta
Para solicitar información sobre una colección específica, especifica el nombre de la colección en el documento de filtro. El siguiente ejemplo devuelve un arreglo con un solo documento que detalla la información de la colección para la colección employees en la base de datos example.
use example db.getCollectionInfos( { name: "employees" } )
[ { "name" : "employees", "type" : "collection", "options" : { "flags" : 1, "validator" : { "$or" : [ { "phone" : { "$exists" : true } }, { "email" : { "$exists" : true } } ] } }, "info" : { "readOnly" : false, "uuid" : UUID("222e18ca-4a10-4a42-a8fe-c39255cc4c55") }, "idIndex" : { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "example.employees" } } ]
Información de retorno para colecciones de solo lectura
Puede especificar un filtro en cualquiera de los campos devueltos por db.getCollectionInfos().
Por ejemplo, el siguiente comando devuelve información para todas las colecciones en la base de datos example donde info.readOnly es true:
use example db.getCollectionInfos( { "info.readOnly" : true } )
[ { "name" : "mylogs", "type" : "collection", "options" : { "capped" : true, "size" : 256 }, "info" : { "readOnly" : true, "uuid" : UUID("8e62116d-b6a0-490a-808c-258ccb7ea947") }, "idIndex" : { "v" : 2, "key" : { "_id" : 1 }, "name" : "_id_", "ns" : "example.mylogs" } } ]