MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Especifique o nome da coleção MongoDb em tempo de execução na inicialização do Spring


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
}