Я пробую реактивную поддержку в весенних данных с 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
не помогает в этом случае.