Создание закрытой коллекции с использованием данных Spring MongoDB @Document

Я пробую реактивную поддержку в весенних данных с MongoDB. Я использую Spring-Boot 2.0.0.

Как правило, я хотел бы написать объект домена, как это в моем проекте:

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

С этими весенними данными он создал бы коллекцию с именем priceData в MongoDB. Если я хочу настроить его, я бы сделал это с помощью атрибута collection:

@Document(collection = "MyPriceData")

Поскольку я хочу попробовать реактивную поддержку MongoDB, я хочу создать ограниченную коллекцию, чтобы я мог использовать @Tailable курсора @Tailable.

Я могу создать ограниченную коллекцию в моей базе данных MongoDB, как указано здесь:

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

или же

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

Это не большая проблема, если я использую некоторую внешнюю базу данных MongoDB, где я могу просто запустить эту команду один раз. Но если бы я использовал встроенную MongoDB, я бы поместил это в класс, который будет выполняться каждый раз при запуске.

В любом случае я буду создавать коллекцию еще до первого запроса. Поэтому мне было интересно, есть ли способ, я мог бы указать для spring-data-mongodb, что мне нужна ограниченная коллекция вместо обычной коллекции. К сожалению, @Document не помогает в этом случае.

Ответ 1

Итак, ниже приведено Oliver

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

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