MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Geben Sie den Namen der MongoDb-Sammlung zur Laufzeit in Spring Boot an

Dies ist ein wirklich alter Thread, aber ich werde hier einige bessere Informationen hinzufügen, falls jemand anderes diese Diskussion findet, da die Dinge etwas flexibler sind, als die akzeptierte Antwort behauptet.

Sie können einen Ausdruck für den Sammlungsnamen verwenden, da spel eine akzeptable Methode zum Auflösen des Sammlungsnamens ist. Wenn Sie beispielsweise eine Eigenschaft in Ihrer Datei application.properties wie diese haben:

mongo.collection.name = my_docs

Und wenn Sie eine Spring Bean für diese Eigenschaft in Ihrer Konfigurationsklasse wie folgt erstellen:

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

Dann können Sie das als Sammlungsnamen für ein Persistenzdokumentmodell wie dieses verwenden:

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