Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/
Manual do banco de dados
/ / /

$listClusterCatalog

$listClusterCatalog

Novidades na versão 8.0.10.

Aviso

O estágio de agregação $listClusterCatalog não é suportado e não é garantido que seja estável em uma versão futura. Não crie uma funcionalidade que dependa de um formato de saída específico desse estágio, pois a saída pode mudar em uma versão futura.

O estágio de agregação do $listClusterCatalog gera informações para coleções em um cluster, incluindo nomes e opções de criação.

$listClusterCatalog deve ser o primeiro estágio do pipeline.

Você deve chamar esse estágio de um banco de dados. Quando você executa esse estágio no banco de dados admin, ele retorna informações sobre todas as collections no cluster. Quando você o executa em qualquer outro banco de dados, ele retorna informações sobre todas as collections dentro desse banco de dados.

O estágio tem a seguinte sintaxe:

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

O estágio $listClusterCatalog recebe um documento com os seguintes campos opcionais:

Campo
Descrição

shards

Opcional. Você pode especificar shards: true ao chamar $listClusterCatalog para que o estágio inclua uma lista de fragmentos em seu documento de retorno.

balancingConfiguration

Opcional. Se você especificar balancingConfiguration: true ao chamar $listClusterCatalog, o estágio incluirá os campos balancingEnabled, balancingEnabledReason, autoMergingEnabled e chunkSize em seu objeto de retorno.

$listClusterCatalog retorna um documento por coleção. Cada documento pode conter os seguintes 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>
}

A tabela a seguir contém informações sobre os campos que $listClusterCatalog retorna:

Campo
Tipo
Retornado com query padrão
Descrição

ns

string

true

O namespace completo da coleção, no formato "<dbName>.<collectionName>".

db

string

true

Nome do banco de dados onde a collection está localizada.

type

string

true

Tipo de armazenamento de dados. Retorna collection paracoleções , view para visualizações e timeseries para coleção de séries temporais.

idIndex

documento

true

Fornece informações sobre o índice _id para a collection. Idêntico ao campo idIndex retornado em listCollections. Este campo não está presente para visualizações ou coleções de séries temporais.

options

documento

true

O documento devolvido contém os seguintes campos:

  • viewOn: documento. O nome da coleção de origem ou visualização a partir da qual criar uma visualização. Presente apenas em visualizações.

  • pipeline: array de documentos. Consiste nos estágios do pipeline de agregação . Presente apenas em visualizações.

  • validator: documento. Retorna as regras ou expressões do validador.

  • timeseries: documento. Retorna opções de séries temporais. Presente somente em buckets de séries temporais e visualizações de séries temporais.

  • clusteredIndex: array de documentos. Representa os índices clusterizados.

Essas opções correspondem diretamente às opções disponíveis no db.createCollection(). Para obter mais informações, consulte Sintaxe.

info

documento

true

Lista os seguintes campos relacionados à collection:

  • readOnly: boolean. Se true o armazenamento de dados for somente leitura. Sempre true para visualizações.

  • uuid: UUID. Uma vez estabelecido, o UUID da collection não muda. O UUID da collection permanece o mesmo entre membros do conjunto de réplicas e de shards em um cluster fragmentado. Este campo não está presente para visualizações ou visualizações de série temporal.

sharded

booleano

true

Especifica se a collection é fragmentada ou não. Este campo também está presente em servidores do conjunto de réplicas.

shardKey

documento

presente apenas se a collection for fragmentada

A chave de fragmento da coleção.

shards

array de strings

falso, deve especificar fragmentos no documento de entrada

Fragmentos por coleção.

balancingEnabled

booleano

falso, deve especificar balancingConfiguration no documento de entrada

Especifica se o balanceamento está habilitado para essa collection. Este campo só estará presente se a collection estiver fragmentada.

balancingEnabledReason

documento

falso, deve especificar balancingConfiguration no documento de entrada

Retorna informações sobre qual comando foi usado para alternar o balanceamento. Este documento tem os seguintes campos:

Este campo só estará presente se a collection estiver fragmentada.

autoMergingEnabled

booleano

falso, deve especificar balancingConfiguration no documento de entrada

Especifica se o AutoMerger está habilitado para a coleção. Este campo só estará presente se a collection estiver fragmentada.

chunkSize

int

falso, deve especificar balancingConfiguration no documento de entrada

Retorna o tamanho do chunk, em MiB, da collection. Este campo só estará presente se a collection estiver fragmentada.

Se você executar este comando no banco de dados admin, precisará da ação de privilégio listClusterCatalog, que está incluída na função clusterMonitor.

Para executar esse comando em um banco de dados específico, você precisa da ação de privilégio listCollections, que está incluída na função read.

O exemplo seguinte retorna informações padrão de todas as coleções no banco de dados do sample_mflix :

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

Quando você executa este exemplo, ele retorna uma array contendo um documento para cada coleção no banco de dados do sample_mflix. Cada um desses documentos contém os campos padrão descritos na tabela 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}
},
...
]

Você pode retornar os campos e informações padrão sobre a configuração de balanceamento de todas as collections em um banco de dados com collections fragmentadas.

O exemplo a seguir retorna configurações de balanceamento para o banco de dados sample_mflix :

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

O exemplo anterior retorna uma array contendo um documento para cada coleção. Cada um desses documentos contém os campos padrão junto com os campos balancingEnabled, balancingEnabledReason, autoMergingEnabled e chunkSize para collections fragmentadas. O seguinte código fornece um exemplo desta saída:

[
{
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,
...
},
...
]

Voltar

$limit

Nesta página