Este é um tópico realmente antigo, mas adicionarei algumas informações melhores aqui caso alguém encontre essa discussão, porque as coisas são um pouco mais flexíveis do que a resposta aceita.
Você pode usar uma expressão para o nome da coleção porque spel é uma maneira aceitável de resolver o nome da coleção. Por exemplo, se você tiver uma propriedade em seu arquivo application.properties como esta:
mongo.collection.name = my_docs
E se você criar um bean de mola para esta propriedade em sua classe de configuração assim:
@Bean("myDocumentCollection")
public String mongoCollectionName(@Value("${mongo.collection.name}") final String collectionName) {
return collectionName
}
Então você pode usar isso como o nome da coleção para um modelo de documento de persistência como este:
@Document(collection = "#{@myDocumentCollection}")
public class SomeModel {
@Id
private String id;
// other members and accessors/mutators
// omitted for brevity
}