Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

sh.balancerCollectionStatus() (método mongosh)

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 para comandos de banco de dados nem drivers específicos de linguagem, como Node.js.

Para o comando do banco 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

Esse comando não é suportado em clusters M0 e Flex. 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" : Long(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.