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 su estabilidad en futuras versiones. No cree funcionalidades que dependan de un formato de salida específico de esta etapa, ya que este podría cambiar en futuras versiones.

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 del proceso.

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. Puede especificar shards: true al llamar a $listClusterCatalog para que la etapa incluya una lista de fragmentos en su documento de retorno.

balancingConfiguration

Opcional. Si especifica balancingConfiguration: true al llamar 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 devuelve $listClusterCatalog:

Campo
Tipo
Devuelto con consulta predeterminada
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 almacén 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 _id índice de la colección. Es idéntico al idIndex campo devuelto en. Este campo no está presente en vistas ni colecciones de series temporales.listCollections

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 del validador.

  • timeseries: documento. Devuelve opciones de series temporales. Solo está presente en depósitos y vistas de series temporales.

  • 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 en todos los miembros del conjunto de réplicas y fragmentos de un clúster fragmentado. Este campo no está presente en las vistas ni en las vistas de series temporales.

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 fragmento de la colección.

shards

matriz 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

Especifica si el balanceo está habilitado para esa colección. Este campo solo está presente si la colección está fragmentada.

balancingEnabledReason

Documento

falso, debe especificar balancingConfiguration en el documento de entrada

Devuelve información sobre el comando utilizado para alternar el balanceo. Este documento contiene los siguientes campos:

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

autoMergingEnabled

booleano

falso, debe especificar balancingConfiguration en el documento de entrada

Especifica si la fusión automática está habilitada para la colección. Este campo solo está presente si la colección está fragmentada.

chunkSize

Int

falso, debe especificar balancingConfiguration en el documento de entrada

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

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

Para ejecutar este comando en una base de datos específica, necesita la listCollections acción de privilegio, que está incluida en el read rol.

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

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

Al ejecutar este ejemplo, se devuelve una matriz que contiene un documento para cada colección de la base de datos sample_mflix. Cada uno de estos documentos contiene los campos predeterminados 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 predeterminados e información sobre la configuración de equilibrio para todas las colecciones en una base de datos con colecciones fragmentadas.

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 una matriz 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 las colecciones fragmentadas. 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 canalización que devuelve información de todas las colecciones de la base de datos sample_mflix. A continuación, el ejemplo ejecuta la canalización:

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

El siguiente ejemplo crea una etapa de canalización que devuelve información de todas las colecciones de un clúster. A continuación, el ejemplo ejecuta la canalización:

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