MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Specificare il nome della raccolta MongoDb in fase di esecuzione in Spring boot

Questo è un thread molto vecchio, ma aggiungerò alcune informazioni migliori qui nel caso qualcun altro trovi questa discussione, perché le cose sono un po' più flessibili di quanto afferma la risposta accettata.

È possibile utilizzare un'espressione per il nome della raccolta perché la spel è un modo accettabile per risolvere il nome della raccolta. Ad esempio, se hai una proprietà nel tuo file application.properties come questa:

mongo.collection.name = my_docs

E se crei un bean di primavera per questa proprietà nella tua classe di configurazione in questo modo:

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

Quindi puoi usarlo come nome della raccolta per un modello di documento di persistenza come questo:

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