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