Создание закрытой коллекции с использованием данных 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