A pesar de que esta pregunta es antigua, tengo la misma pregunta y parece que hay una forma de proporcionar una clave de fragmentación personalizada desde hace poco.
La configuración de Shard Key basada en anotaciones está disponible en 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 hoy spring-boot-starter-mongodb
aunque viene con la versión 2.x.