sql >> Base de Datos >  >> NoSQL >> MongoDB

Especifique el nombre de la colección MongoDb en tiempo de ejecución en Spring boot

Este es un hilo realmente antiguo, pero agregaré mejor información aquí en caso de que alguien más encuentre esta discusión, porque las cosas son un poco más flexibles de lo que afirma la respuesta aceptada.

Puede usar una expresión para el nombre de la colección porque la ortografía es una forma aceptable de resolver el nombre de la colección. Por ejemplo, si tiene una propiedad en su archivo application.properties como esta:

mongo.collection.name = my_docs

Y si crea un Spring Bean para esta propiedad en su clase de configuración como esta:

@Bean("myDocumentCollection")
public String mongoCollectionName(@Value("${mongo.collection.name}") final String collectionName) {
    return collectionName
}

Luego puede usarlo como el nombre de la colección para un modelo de documento persistente como este:

@Document(collection = "#{@myDocumentCollection}")
public class SomeModel {
    @Id
    private String id;
    // other members and accessors/mutators
    // omitted for brevity
}