Creating a capped collection using Spring data MongoDB @Document

Refresh

November 2018

Views

781 time

15

I am trying out reactive support in spring-data with MongoDB. I am using spring-boot 2.0.0.

Generally I would write a domain object like this in my project:

@Document
public class PriceData {
    ......
}

With this spring-data it would create a collection with name priceData in MongoDB. If I want to customize it, then I would do it using the collection attribute:

   @Document(collection = "MyPriceData")

Since I want to try reactive support of MongoDB, I want to create a capped collection so that I can use @Tailable cursor queries.

I can create a capped collection in my MongoDB database as specified here:

CollectionOptions options = new CollectionOptions(null, 50, true);
mongoOperations.createCollection("myCollection", options);

or

db.runCommand({ convertToCapped: 'MyPriceData', size: 9128 })

This is not a big problem if I use some external MongoDB database where I can just run this command once. But if I use an embedded MongoDB, then I would have put this in a class which would be executed every time during start up.

Either way I would be creating a collection even before the first request. So I was wondering if there is a way, I could specify to spring-data-mongodb that I need a capped collection instead of regular collection. Unfortunately @Document doesn't help in this case.

1 answers

4

Так что ниже от Oliver

Может быть хорошей идеей, чтобы эти параметры подвергается воздействию @Document аннотирования, чтобы автоматически заботиться о них при создании контекста отображения, но в целом мы получили обратную связь от людей, желающих вручную обрабатывать эти настройки и операции индексирования коллекции не слишком много Automagic поведения. Вы можете открыть JIRA в случае, если вы хотели бы видеть, что поддерживается тем не менее.

Это еще в 2011 году . И, кажется , его все еще верно до сих пор . Если вам действительно нужно изменение , чтобы справиться с этим с помощью аннотаций, вы должны открыть билет JIRA