Apesar dessa pergunta ser antiga, tenho a mesma pergunta e parece que há uma maneira de fornecer uma chave de fragmentação personalizada desde recentemente.
A configuração de chave de fragmentação baseada em anotação está disponível em
spring-data-mongodb:3.x
,https://docs.spring .io/spring-data/mongodb/docs/3.0.x/reference/html/#sharding
@Document("users")
@Sharded(shardKey = { "country", "userId" })
public class User {
@Id
Long id;
@Field("userid")
String userId;
String country;
}
A partir de hoje
spring-boot-starter-mongodb
vem com a versão 2.x embora.