我正在尝试使用MongoDB在spring-data中提供反应支持。我使用的是spring-boot 2.0.0。
通常我会在我的项目中写一个这样的域对象:
@Document
public class PriceData {
......
}
使用这个spring-data,它将在MongoDB中创建一个名为priceData的集合。如果我想自定义它,那么我会使用collection
属性:
@Document(collection = "MyPriceData")
由于我想尝试MongoDB的反应支持,我想创建一个上限集合,以便我可以使用@Tailable
游标查询。
我可以在指定here的MongoDB数据库中创建一个上限集合:
CollectionOptions options = new CollectionOptions(null, 50, true);
mongoOperations.createCollection("myCollection", options);
或
db.runCommand({ convertToCapped: 'MyPriceData', size: 9128 })
如果我使用一些外部MongoDB数据库,我可以运行此命令一次,这不是一个大问题。但是,如果我使用嵌入式MongoDB,那么我会把它放在一个每次启动时都会执行的类中。
无论哪种方式,我都会在第一次请求之前创建一个集合。所以我想知道是否有办法,我可以指定spring-data-mongodb我需要一个上限集合而不是常规集合。
不幸的是@Document
在这种情况下无济于事。