Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

$listClusterCatalog

$listClusterCatalog

Nuevo en la versión 8.1.

Advertencia

La etapa de agregación $listClusterCatalog no es compatible y no se garantiza que sea estable en una futura versión. No cree funcionalidades que dependan de un formato de salida específico de esta etapa, ya que la salida puede cambiar en una versión futura.

La etapa de agregación $listClusterCatalog genera información para las colecciones de un clúster, incluidos nombres y opciones de creación.

$listClusterCatalog debe ser la primera etapa en la pipeline.

Debes llamar a esta etapa contra una base de datos. Cuando ejecutas esta etapa contra la Labase de datos de administración devuelve información sobre todas las colecciones del clúster. Al ejecutarla en cualquier otra base de datos, devuelve información sobre todas las colecciones dentro de esa base de datos.

La etapa tiene la siguiente sintaxis:

{
$listClusterCatalog: {
shards: true,
balancingConfiguration: true
}
}

La etapa $listClusterCatalog toma un documento con los siguientes campos opcionales:

Campo
Descripción

shards

opcional. Puedes especificar shards: true al llamar a $listClusterCatalog para que la fase incluya una lista de particiones en su documento de retorno.

balancingConfiguration

opcional. Si especificas balancingConfiguration: true cuando llamas a $listClusterCatalog, la etapa incluye los campos balancingEnabled, balancingEnabledReason, autoMergingEnabled y chunkSize en su objeto de retorno.

$listClusterCatalog devuelve un documento por colección. Cada documento puede contener los siguientes campos:

{
"ns" : <string>,
"db" : <string>,
"type" : <string>,
"idIndex" : <document>,
"options" : <document>,
"info" : <document>,
"sharded" : <boolean>,
"shardKey" : <document>,
"shards" : [<string>],
"balancingEnabled" : <boolean>,
"balancingEnabledReason" : <document>,
"autoMergingEnabled" : <boolean>,
"chunkSize" : <int>
}

La siguiente tabla contiene información sobre los campos que $listClusterCatalog devuelve:

Campo
Tipo
Devuelto con la query por defecto
Descripción

ns

string

true

El espacio de nombres completo de la colección, en el formato "<dbName>.<collectionName>".

db

string

true

Nombre de la base de datos donde se encuentra la colección.

type

string

true

Tipo de tienda de datos. Devuelve collection para colecciones, view para vistas y timeseries para colecciones de series de tiempo.

idIndex

Documento

true

Proporciona información sobre el índice _id para la colección. Idéntico al campo idIndex devuelto en listCollections. Este campo no está presente para vistas o colecciones de series temporales.

options

Documento

true

El documento devuelto contiene los siguientes campos:

  • viewOn: documento. El nombre de la colección o vista de origen a partir de la cual se creará una vista. Solo está presente en vistas.

  • pipelineMatriz de documentos. Consta de las etapas del pipeline de agregación. Solo está presente en las vistas.

  • validator: documento. Devuelve las reglas o expresiones validadoras.

  • timeseries: documento. Devuelve las opciones de series temporales. Solo presente en los buckets de serie temporal y en las vistas de serie temporal.

  • clusteredIndexMatriz de documentos. Representa los índices agrupados.

Estas opciones corresponden directamente a las opciones disponibles en db.createCollection(). Para más información, consulte Sintaxis.

info

Documento

true

Enumere los siguientes campos relacionados con la colección:

  • readOnly: boolean. Si true, el almacén de datos es de solo lectura. Siempre true para las vistas.

  • uuid: UUID. Una vez establecido, el UUID de la colección no cambia. El UUID de la colección permanece igual entre miembros del set de réplicas y particiones en un clúster. Este campo no está presente para vistas o vistas de serie temporal.

sharded

booleano

true

Especifica si la colección está fragmentada o no. Este campo también está presente en los servidores de conjuntos de réplicas.

shardKey

Documento

Sólo está presente si la colección está fragmentada

La clave de partición de la colección.

shards

Arreglo de cadenas

false, se debe especificar particiones en el documento de entrada

Fragmentos por colección.

balancingEnabled

booleano

falso, debe especificar balancingConfiguration en el documento de entrada

Se especifica si la compensación está habilitada para esa colección. Este campo solo está presente si la colección es particionada.

balancingEnabledReason

Documento

falso, debe especificar balancingConfiguration en el documento de entrada

Devuelve información sobre qué comando se ha utilizado para alternar el equilibrado. Este documento contiene los siguientes campos:

Este campo solo está presente si la colección está particionada.

autoMergingEnabled

booleano

falso, debe especificar balancingConfiguration en el documento de entrada

Especifica si el AutoMerger está habilitado para la colección. Este campo solo está presente si la colección está particionada.

chunkSize

Int

falso, debe especificar balancingConfiguration en el documento de entrada

Devuelve el tamaño de fragmento en MiB de la colección. Este campo solo está presente si la colección está particionada.

Si ejecutas este comando contra la base de datos admin, necesitas la acción de privilegio listClusterCatalog, que está incluida en el rol clusterMonitor.

Para ejecutar este comando en una base de datos específica, necesitas la acción de privilegio listCollections, que se incluye en el rol read.

El siguiente ejemplo devuelve información por defecto de todas las colecciones en la base de datos sample_mflix:

use sample_mflix
db.aggregate([
{
$listClusterCatalog: {}
}
])

Cuando ejecutas este ejemplo, devuelve un arreglo que contiene un documento para cada colección en la base de datos sample_mflix. Cada uno de estos documentos contiene los campos por defecto descritos en la tabla anterior:

[
{
ns: "sample_mflix.movies",
db: "sample_mflix",
type: "collection",
idIndex: { v: 2, key: { _id: 1 }, name: '_id' },
options: { ... },
sharded: false,
info: {
readOnly: false,
uuid: new UUID("6c46c8b9-4999-4213-bcef-9a36b0cff228")
}
},
{
ns: "sample_mflix.comments",
db: "sample_mflix",
type: "collection",
options: { ... },
sharded: true,
info: {
readOnly: true,
uuid: new UUID("6c448eb9-4090-4213-bbaf-9a36bb7fc98e")
}
shardKey: { _id: 1}
},
...
]

Puede devolver los campos por defecto y la información sobre la configuración del balanceo para todas las colecciones en una base de datos con colecciones particionadas.

El siguiente ejemplo devuelve configuraciones de equilibrio para la base de datos sample_mflix:

use sample_mflix
db.aggregate([
{
$listClusterCatalog: {
balancingConfiguration: true
}
}
])

El ejemplo anterior devuelve un arreglo que contiene un documento para cada colección. Cada uno de estos documentos contiene los campos predeterminados junto con los campos balancingEnabled, balancingEnabledReason, autoMergingEnabled y chunkSize para colecciones particionadas. El siguiente código proporciona un ejemplo de esta salida:

[
{
ns: "sample_mflix.movies",
db: "sample_mflix",
type: "collection",
idIndex: { v: 2, key: { _id: 1 }, name: '_id' },
options: { ... },
sharded: false,
...
},
{
ns: "sample_mflix.comments",
db: "sample_mflix",
type: "collection",
sharded: true,
shardKey: { _id: 1},
balancingEnabled: true,
balancingEnabledReason: {
enableBalancing: true,
allowMigrations: false
},
autoMergingEnabled: false,
chunkSize: 256,
...
},
...
]

Los ejemplos de Node.js en esta página utilizan la base de datos sample_mflix de los conjuntos de datos de muestra de Atlas. Para aprender a crear un clúster gratuito de MongoDB Atlas y cargar los conjuntos de datos de muestra, consulte Primeros pasos en la documentación del controlador de MongoDB Node.js.

Para usar el driver MongoDB Node.js para agregar una etapa $listClusterCatalog a un pipeline de agregación, incluya el operador $listClusterCatalog en un objeto pipeline.

El siguiente ejemplo crea una etapa de la pipeline que devuelve información para todas las colecciones de la base de datos sample_mflix. El ejemplo luego ejecuta el pipeline:

const pipeline = [{ $listClusterCatalog: {} }];
const db = client.db("sample_mflix");
const cursor = db.aggregate(pipeline);
return cursor;

El siguiente ejemplo crea una etapa de pipeline que devuelve información de todas las colecciones en un clúster. El ejemplo luego ejecuta el pipeline:

const pipeline = [{ $listClusterCatalog: {} }];
const adminDB = client.db("admin");
const cursor = adminDB.aggregate(pipeline);
return cursor;

El siguiente ejemplo crea una canalización que incluye información de balance en los documentos de retorno para todas las colecciones de la base de datos sample_mflix. A continuación, el ejemplo ejecuta la canalización:

const db = client.db("sample_mflix");
const pipeline = [{ $listClusterCatalog: {balancingConfiguration: true} }];
const cursor = db.aggregate(pipeline);
return cursor;

Volver

$limit

En esta página