1

我想在我的 java spring 应用程序中确定 mongodb 集合大小。我知道反应式反应 Mongo 模板有一个count()方法可以做到这一点,但是它需要一个查询参数。

所以我的解决方案是:

public Mono<Long> collectionSize(){
    Criteria criteria = Criteria.where("_id").exists(true);
    return this.reactiveMongoTemplate.count(Query.query(criteria),MY_COLLECTION_NAME);
}

但是我不喜欢这个解决方案,因为我必须使用船长明显的标准。

这个问题有更好的解决方案吗?

谢谢!

4

1 回答 1

1

Criteria有一个空的构造函数。

public Mono<Long> collectionSize(){
    Criteria criteria = new Criteria();
    return this.reactiveMongoTemplate.count(Query.query(criteria),MY_COLLECTION_NAME);
}

参考

并且 count 的所有变体都需要一个查询参数,如此处所述

查询不需要条件,您只需提供查询参数即可。参考

public Mono<Long> collectionSize(){
        return this.reactiveMongoTemplate.count(new Query(),MY_COLLECTION_NAME);
    }
于 2021-01-11T16:29:05.447 回答