Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

$shardedDataDistribution (agregação)

Nesta página

  • Definição
  • Sintaxe
  • Campos de Saída
  • Exemplos
  • Retornar todas as métricas de distribuição de dados fragmentados
  • Métricas de retorno para um shard específico
  • Métricas de retorno para um namespace
  • Confirme que nenhum documento órfão permanece
$shardedDataDistribution

Novidades na versão 6.0.3.

Retorna informações sobre a distribuição de dados em collections fragmentadas.

Observação

Esse estágio de aggregation só está disponível em mongos.

Este estágio de agregação deve ser executado no banco de dados do admin . O usuário deve ter a ação de privilégio shardedDataDistribution .

O estágio shardedDataDistribution tem a seguinte sintaxe:

db.aggregate( [
{ $shardedDataDistribution: { } }
] )

O estágio $shardedDataDistribution gera uma array de documento para cada collection fragmentada no reconhecimento de data center. Esses documentos contêm os seguintes campos:

Nome do campo
Tipo de Dados
Descrição
ns
string
Namespace da coleção fragmentada.
shards
variedade
Fragmentos na coleta com as informações de distribuição de dados para cada fragmento.
shards.numOrphanedDocs
inteiro
Número de documentos órfãos no fragmento.
shards.numOwnedDocuments
inteiro
Número de documentos de propriedade do shard.
shards.ownedSizeBytes
inteiro
Armazenamento em bytes para documentos de propriedade do fragmento.
shards.orphanedSizeBytes
inteiro
Armazenamento em bytes para documentos órfãos no fragmento.

Para retornar todas as métricas de distribuição de dados fragmentados, execute o seguinte:

db.aggregate([
{ $shardedDataDistribution: { } }
])

Saída de exemplo:

[
{
"ns": "test.names",
"shards": [
{
"shardName": "shard-1",
"numOrphanedDocs": 0,
"numOwnedDocuments": 6,
"ownedSizeBytes": 366,
"orphanedSizeBytes": 0
},
{
"shardName": "shard-2",
"numOrphanedDocs": 0,
"numOwnedDocuments": 6,
"ownedSizeBytes": 366,
"orphanedSizeBytes": 0
}
]
}
]

Para retornar métricas de distribuição de dados fragmentados para um shard específico, execute o seguinte:

db.aggregate([
{ $shardedDataDistribution: { } },
{ $match: { "shards.shardName": "<name of the shard>" } }
])

Para retornar dados de distribuição de dados fragmentados para um namespace, execute o seguinte:

db.aggregate([
{ $shardedDataDistribution: { } },
{ $match: { "ns": "<database>.<collection>" } }
])

A partir do MongoDB 6.0.3, você pode executar uma agregação usando o estágio $shardedDataDistribution para confirmar que nenhum documento órfão permanece:

db.aggregate([
{ $shardedDataDistribution: { } },
{ $match: { "ns": "<database>.<collection>" } }
])

$shardedDataDistribution tem saída semelhante ao seguinte:

[
{
"ns": "test.names",
"shards": [
{
"shardName": "shard-1",
"numOrphanedDocs": 0,
"numOwnedDocuments": 6,
"ownedSizeBytes": 366,
"orphanedSizeBytes": 0
},
{
"shardName": "shard-2",
"numOrphanedDocs": 0,
"numOwnedDocuments": 6,
"ownedSizeBytes": 366,
"orphanedSizeBytes": 0
}
]
}
]

Certifique-se de que "numOrphanedDocs" seja 0 para cada shard no cluster.

← $setWindowFields (agregação)