Definição
sh.addShardToZone(shard, zone)Associa um fragmento a uma zona . O MongoDB associa este fragmento à zona fornecida. Os chunks cobertos pela zona são atribuídos a shards associados à zona.
Importante
Método mongosh
This page documents a
mongoshmethod. This is not the documentation for database commands or language-specific drivers, such as Node.js.Para o comando do banco de dados, consulte o comando
addShardToZone.Para drivers de API do MongoDB, consulte a documentação do driver do MongoDB específica da linguagem.
Este método tem o seguinte parâmetro:
ParâmetroTipoDescriçãostring
The name of the shard to which to associate the zone.
string
The name of the zone to associate with the shard.
Only issue
sh.addShardToZone()when connected to amongosinstance.
Compatibilidade
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
Comportamento
Você pode associar uma zona a vários shards, e um shard pode se associar a várias zonas.
Consulte a página do manual de zonas para obter mais informações sobre zonas em clusters fragmentados.
Faixas
O MongoDB ignora efetivamente as zonas que não têm pelo menos um intervalo de valores de chave de fragmento associados a ele.
Para associar um intervalo de valores da chave de fragmento a uma zona, use o método sh.updateZoneKeyRange() .
você pode executar o comando de banco de dados do updateZoneKeyRange e seus auxiliares sh.updateZoneKeyRange() e sh.addTagRange() em uma coleção não compartilhada ou uma coleção não existente.
Dica
Ao definir as zonas e as faixas de zonas antes de fragmentar uma collection vazia ou não existente, a operação de collection de shards cria chunks para as faixas de zonas definidas, bem como quaisquer chunks adicionais para cobrir todo a faixa dos valores da chave de shard e executa uma distribuição inicial de shards com base nas faixas de zonas. Essa criação e distribuição inicial de chunks permite uma configuração mais rápida da fragmentação por zonas. Após a distribuição inicial, o balancer gerenciará a distribuição de chunks dali para a frente.
Consulte Predefinir zonas e faixas de zona para uma collection vazia ou não existente para ver um exemplo.
Segurança
Para clusters fragmentados que impõem controle de acesso , você deve autenticar como um usuário cujos privilégios incluam:
updatena collectionshardsno banco de dadosconfig; ou, alternativamente,enableShardingno recurso do cluster .
The clusterAdmin or clusterManager built-in roles have the appropriate permissions for issuing sh.addShardToZone(). See the Role-Based Access Control manual page for more information.
Exemplo
O exemplo a seguir adiciona três zonas, NYC, LAX e NRT, associando cada uma a um fragmento:
sh.addShardToZone("shard0000", "JFK") sh.addShardToZone("shard0001", "LAX") sh.addShardToZone("shard0002", "NRT")
Um shard pode se associar a várias zonas. O exemplo a seguir associa LGA a shard0000:
sh.addShardToZone("shard0000", "LGA")
shard0000 associa-se à zona LGA e à zona JFK . Em um cluster balanceado, o MongoDB roteia as leituras e gravações cobertas por qualquer zona para shard0000 .