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 collection fragmentada à distância, somente um índice na chave de shard, um índice composto em que a chave de shard é um prefixo ou o índice _id padrão pode ser exclusivo. Você não pode especificar uma restrição exclusiva em um índice de hash.
Para saber mais sobre as restrições que se aplicam a índices exclusivos em coleção fragmentadas, como impor exclusividade nos valores de chave de fragmento e como manter a exclusividade em um campo que não é sua chave de fragmento, consulte Manter exclusividade em clusters fragmentados.