Menu Docs
Página inicial do Docs
/
Manual 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 fragmento específico
  • Retornar métricas para um namespace
  • Confirme que não há mais documentos órfãos.
$shardedDataDistribution

Novidades na versão 6.0.3.

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

Observação

Este estágio de agregação está disponível apenas 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
array
Fragmentos na coleção 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 pertencentes ao fragmento.
shards.ownedSizeBytes
inteiro
Tamanho em bytes de documentos de propriedade do shard quando descompactados.
shards.orphanedSizeBytes
inteiro
Tamanho em bytes de documentos órfãos no fragmento quando descompactados.

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 fragmento 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 não resta nenhum documento órfão:

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

$shardedDataDistribution tem saída semelhante à 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.

Voltar

$setWindowFields