使用 countDocuments() 可精确统计符合条件的文档数量,如 db.users.countDocuments({}) 统计全部或加条件查询;而 estimatedDocumentCount() 基于元数据快速估算总数,不支持条件,适用于只需大致数量且追求性能的场景。两者根据精度和条件需求选择。

要查询 MongoDB 中某个集合有多少条数据,可以使用 countDocuments() 方法或 estimatedDocumentCount() 方法。这两个方法适用于不同的场景。
1. 使用 countDocuments() 统计匹配条件的文档数量
这个方法用于统计符合指定条件的文档数量,如果传入空条件,则统计全部文档。语法示例:
db.collection.countDocuments({})
例子: 查询 users 集合中的所有数据条数
db.users.countDocuments({})
你也可以加查询条件,比如统计 age 大于 25 的用户数量:
db.users.countDocuments({age: {$gt: 25}})
注意:从 MongoDB 4.0 开始,推荐使用 countDocuments() 而不是已废弃的 count() 方法,因为前者更准确且支持更大的数据集。
2. 使用 estimatedDocumentCount() 获取集合的近似文档数量
如果你只需要整个集合的总文档数(不带任何条件),这个方法更快,因为它基于集合的元数据进行估算。语法示例:
db.collection.estimatedDocumentCount()
例子:
db.users.estimatedDocumentCount()优点是性能高,缺点是不支持查询条件,只返回集合的粗略总数。
两种方法对比
- countDocuments({}):精确统计,支持条件,适合需要准确值或带筛选的场景,但大数据量时稍慢。
- estimatedDocumentCount():快速估算,不支持条件,适合只需大致总数且追求性能的情况。
基本上就这些。根据是否需要条件和对精度的要求选择合适的方法即可。










