对于最新的稳定版本,请使用 Spring Data MongoDB 4.4.0! |
对文档进行计数
模板 API 提供了各种方法来计算与给定条件匹配的文档数量。 其中之一概述如下。
template.query(Person.class)
.matching(query(where("firstname").is("luke")))
.count();
在 SpringData MongoDB 的 3.x 之前版本中,count作使用 MongoDB 的内部集合统计信息。
随着 MongoDB 事务的引入,这不再可能,因为统计数据无法正确反映需要基于聚合的计数方法的事务期间的潜在变化。
所以在版本 2.x 中MongoOperations.count()
如果没有正在进行的事务,则使用 collection statistics,如果正在进行,则使用 aggregation variant。
从 Spring Data MongoDB 3.x 开始,任何count
作使用基于 MongoDB 的基于聚合的计数方法,无论是否存在筛选条件countDocuments
.
如果应用程序正常,但存在处理集合统计信息的限制MongoOperations.estimatedCount()
提供了另一种选择。
通过设置 |
MongoDB 原生 因此,给定的
|