答案是使用 countDocuments() 或 estimatedDocumentCount() 方法。需精确统计时用 countDocuments(),支持条件查询;需快速估算总数时用 estimatedDocumentCount(),不支持条件,性能更快。

在 MongoDB 中统计记录数,最常用的方法是使用 count() 或 estimatedDocumentCount() 方法,具体选择取决于你的需求和场景。
1. 使用 countDocuments() 统计符合条件的文档数量
如果你需要统计满足特定查询条件的文档数量,推荐使用 countDocuments() 方法。它会扫描匹配的文档并返回精确的数量。示例:
-
统计集合中所有文档的数量:
db.users.countDocuments({}) -
统计年龄大于25的用户数量:
db.users.countDocuments({ age: { $gt: 25 } })
countDocuments() 而不是过时的 count()(无参数或带查询条件),因为后者在某些情况下可能不够准确。
2. 使用 estimatedDocumentCount() 快速估算总数
如果你只需要快速获取集合中文档的近似总数,且不涉及查询条件,可以使用 estimatedDocumentCount()。它利用集合的元数据进行估算,速度更快,但不支持查询过滤。示例:
-
估算 users 集合中文档的总数:
db.users.estimatedDocumentCount()
3. 区别与选择建议
- countDocuments({}):精确统计所有文档,支持查询条件,性能相对慢一些,适用于小到中等规模的数据集。
- estimatedDocumentCount():快速估算总数,不支持条件,适合大集合的总数查看。
- 避免使用旧版的
count()方法,除非你明确知道其行为。










