As coleções fragmentadas exigem um índice que suporte a chave de fragmento. O índice pode ser um índice na chave de fragmento ou um índice composto, onde a chave de fragmento é um prefixo do índice.
Se a collection estiver vazia,
sh.shardCollection()cria o índice na chave de shard, caso esse índice ainda não exista.Se a collection não estiver vazia, é necessário criar o índice antes de usar
sh.shardCollection().Se você refragmentar uma collection usando
sh.reshardCollection(), não precisará criar o índice na nova chave de fragmento com antecedência. A operação de refragmentação cria automaticamente os índices necessários. Para aprender mais, consulte o procedimento Refragmentar uma coleção.
Você não pode descartar ou ocultar um índice se ele for o único índice não oculto compatível com a chave de fragmentação.
A partir do MongoDB 7.0.3, 6.0.12 e 5.0.22, você pode descartar o índice de uma chave de fragmento com hash. Para obter mais informações, consulte Descartar um índice de chave de fragmento com hash.
Unique Indexes
O MongoDB pode forçar uma restrição de exclusividade em um índice de chave de fragmento à distância. O uso de um índice único na chave de fragmento força a exclusividade em toda a combinação da chave, e não em componentes individuais da chave de fragmento.
Para uma coleção fragmentada à distância, apenas um índice na chave de shard com hash, um índice composto onde a chave de shard com hash é um prefixo ou o índice _id padrão pode ser único. Você não pode especificar uma restrição única em um índice com hash.
Para aprender sobre as restrições que se aplicam a índices únicos em coleções fragmentadas, como forçar a exclusividade nos valores da chave de shard e como manter a exclusividade em um campo que não é sua chave de shard com hash, consulte Manter a exclusividade em clusters.