Definição
sh.addTagRange(namespace, minimum, maximum, tag)Observação
Este método faz aliases para
sh.updateZoneKeyRange(). O MongoDB fornece fragmentação de zona como sucessora da fragmentação com reconhecimento de tags.Anexa um intervalo de valores chave de fragmento a uma tag de fragmento criada usando o método
sh.addShardTag().You can run
updateZoneKeyRangedatabase command and its helperssh.updateZoneKeyRange()andsh.addTagRange()on an unsharded collection or a non-existing collection.sh.addTagRange()recebe os seguintes argumentos:ParâmetroTipoDescriçãonamespacestring
O namespace da collection fragmentada a ser marcada.
minimumdocumento
O valor mínimo da faixa da chave de shard a ser incluída na tag. O mínimo é uma correspondência inclusiva. Especifique o valor mínimo na forma de
<fieldname>:<value>. Esse valor deve ser do mesmo tipo ou tipos de BSON que a chave de fragmento.maximumdocumento
O valor máximo do intervalo da chave de fragmento a ser incluído na tag. O máximo é uma correspondência exclusiva. Especifique o valor máximo na forma de
<fieldname>:<value>. Esse valor deve ser do mesmo tipo ou tipos de BSON que a chave de fragmento.tagstring
O nome da tag à qual anexar o intervalo especificado pelos argumentos
minimumemaximum.Use
sh.addShardTag()para garantir que o balanceador migre os documentos que existem dentro do intervalo especificado para um fragmento ou conjunto de fragmentos específico.Only issue
sh.addTagRange()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
Limites
As faixas de zona estão sempre inclusas no limite inferior e exclusivas do limite superior.
Distribuição inicial de chunks para collections vazias ou inexistentes
If you are considering performing zone sharding on an empty or non-existent collection, use sh.addTagRange() to create the zones and zone ranges before sharding the collection. Creating zones and zone ranges on empty or non-existing collections allows MongoDB to optimize the initial chunk creation and distribution process when sharding the collection. This optimized process supports faster setup of zoned sharding with less balancer overhead than creating zones after sharding. The balancer performs all chunk management after the optimized initial chunk creation and distribution.
Para obter um exemplo de definição de zona e zona para distribuição inicial de parte, consulte Predefinir zona e zona para uma Collection vazia ou não existente.
Distribuição inicial de chunks com chaves de shard com hash compostas
O MongoDB oferece suporte a collections de fragmentação em índices com hash compostos. O MongoDB pode executar a criação e a distribuição otimizadas do chunk inicial ao fragmentar a collection vazia ou inexistente em uma chave shard com hash composto.
Se o campo com hash for o prefixo da chave de fragmento (ou seja, o primeiro campo na chave de fragmento), todos os itens a seguir deverão ser verdadeiros para que o MongoDB execute a criação e a distribuição inicial do chunk:
A collection tem um único intervalo de zona com
MinKeypara todos os campos de limite inferior eMaxKeypara todos os campos de limite superior.sh.shardCollection()especifica a opção presplitHashedZones: true .
Se o campo hashed não for o prefixo da chave de shard (ou seja, a chave de shard tem um ou mais campos principais não hasheados), todos os itens a seguir deverão ser verdadeiros para que o MongoDB execute a criação e a distribuição inicial do chunk:
A coleção tem uma faixa de zona para cada combinação de valores de campo de prefixo distintos (ou seja, todos os campos que precedem o campo hashed).
Para o limite inferior de cada faixa de zona , especifique
MinKeypara o campo hashed e todos os campos subsequentes.Para cada faixa de zona, pelo menos um campo de prefixo de limite superior deve diferir de sua contraparte de limite inferior.
sh.shardCollection()especifica a opção presplitHashedZones: true .
Para obter um exemplo mais completo da definição de zona e zona para a distribuição inicial de parte em uma chave de fragmento com hash, consulte Pre-definir zona e zona para uma Collection vazia ou não existente.
Coleções descartadas
A eliminação de uma coleção exclui seus intervalos de zonas/tags associados.
Nas versões anteriores, o MongoDB não remove as associações de tags para uma collection descartada e, se posteriormente você criar uma nova collection com o mesmo nome, as associações de tags antigas serão aplicadas à nova collection.
Exemplo
Com uma chave de shard de {state: 1, zip: 1}, a operação a seguir cria um intervalo de tags que cobre os códigos postais no estado de Nova York:
sh.addTagRange( "exampledb.collection", { state: "NY", zip: MinKey }, { state: "NY", zip: MaxKey }, "NY" )