Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

sh.balancerCollectionStatus()

Nesta página

  • Definição
  • Compatibilidade
  • Sintaxe
  • Controle de acesso
  • Exemplos
sh.balancerCollectionStatus(namespace)

Retorna um documento que contém informações sobre se as partes de uma collection fragmentada estão balanceados (ou seja, não precisam ser movidos) a partir do momento em que o comando é executado ou precisam ser movidos devido à drenagem de fragmentos, violação de zona ou desequilíbrio de pedaços entre fragmentos.

Importante

Método mongosh

Esta página documenta um método mongosh. Esta não é a documentação de comandos de banco de dados nem drivers específicos de linguagem, como Node.js.

Para o comando de banco de dados de dados, consulte o comando balancerCollectionStatus.

Para drivers de API do MongoDB, consulte a documentação do driver do MongoDB específica da linguagem.

Esse método está disponível em implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem

Importante

Este comando não é suportado em instâncias sem servidor. Para obter mais informações, consulte Comandos não suportados.

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

sh.balancerCollectionStatus() tem o seguinte formato:

sh.balancerCollectionStatus( <namespace> )

O método sh.balancerCollectionStatus() utiliza o seguinte parâmetro:

Parâmetro
Tipo
Descrição
String

O namespace da collection para fragmentar no formato "<database>.<collection>".

Ao executar com controle de acesso, o usuário deve ter a enableSharding ação de privilégio do no reconhecimento de data center e/ou collection para executar o método. Ou seja, um usuário deve ter uma role que conceda o seguinte privilégio:

{ resource: { db: <database>, collection: <collection> }, actions: [ "enableSharding" ] }

O papel do clusterManager embutido fornece os privilégios apropriados.

Para verificar se as partes de uma collection fragmentada test.contacts estão balanceados, conecte-se a uma instância mongos e emita o seguinte:

sh.balancerCollectionStatus("test.contacts")

Se os chunks da collection não precisarem ser movidos, o método retornará uma saída semelhante à seguinte:

{
"balancerCompliant" : true,
"ok" : 1,
"operationTime" : Timestamp(1583193238, 1),
"$clusterTime" : {
"clusterTime" : Timestamp(1583193238, 1),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}

Se o namespace da query estiver passando por desfragmentação de parte, o método sh.balancerCollectionStatus retornará uma saída semelhante a esta:

{
"chunkSize": Long("128"),
"balancerCompliant": false,
"firstComplianceViolation": "defragmentingChunks",
"details": {
"currentPhase": "moveAndMergeChunks",
"progress": { "remainingChunksToProcess": 1 }
}
}

Observação

A desfragmentação de parte ocorre em várias fases. O campo progress pertence somente à fase atual.

Para a descrição da saída, consulte balancerCollectionStatus Output.

Voltar

sh.addTagRange