如何在没有任何查询过滤器的情况下使用 ReactiveMongoTemplate 计算 mongodb 集合?
Posted
技术标签:
【中文标题】如何在没有任何查询过滤器的情况下使用 ReactiveMongoTemplate 计算 mongodb 集合?【英文标题】:How count a mongodb collection with ReactiveMongoTemplate without any query filter? 【发布时间】:2021-04-16 13:39:02 【问题描述】:我想在我的 java spring 应用程序中确定 mongodb 集合大小。我知道响应式反应 Mongo 模板有一个 count()
方法,但它需要一个 query 参数。
所以我的解决方案是:
public Mono<Long> collectionSize()
Criteria criteria = Criteria.where("_id").exists(true);
return this.reactiveMongoTemplate.count(Query.query(criteria),MY_COLLECTION_NAME);
但是我不喜欢这个解决方案,因为我必须使用一个明显的标准。
这个问题有更好的解决方案吗?
谢谢!
【问题讨论】:
【参考方案1】:Criteria
有一个空的构造函数。
public Mono<Long> collectionSize()
Criteria criteria = new Criteria();
return this.reactiveMongoTemplate.count(Query.query(criteria),MY_COLLECTION_NAME);
Reference
count 的所有变体都需要一个查询参数,如文档中所述 here
查询不需要条件,您只需提供查询参数即可。 Reference
public Mono<Long> collectionSize()
return this.reactiveMongoTemplate.count(new Query(),MY_COLLECTION_NAME);
【讨论】:
以上是关于如何在没有任何查询过滤器的情况下使用 ReactiveMongoTemplate 计算 mongodb 集合?的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有任何重复行的情况下连接 cognos 中的两个表?