estimatedDocumentCount()(估算文档数)
最后更新:2026-10-09
estimatedDocumentCount()(估算文档数)
estimatedDocumentCount()基于集合元数据估算文档总数,例如`db.users.estimatedDocumentCount()`,不接受过滤条件。它不扫描实际文档,速度极快,但结果可能滞后于真实数据(尤其在未整理的分片集群中)。适合统计面板展示、容量评估等对精度要求不高的场景;需要精确计数请用countDocuments()。
| 分类 | 读取 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
db.<集合>.estimatedDocumentCount()
返回值:估算的文档总数(整数)。
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// estimatedDocumentCount:快速查看用户总数
const n = db.users.estimatedDocumentCount()
print('用户总数(估算): ' + n)
运行结果:
用户总数(估算): 1000
📌 注意事项
- 不接受过滤条件,只能统计整个集合
- 基于元数据,可能比实际值滞后
- 快,但精度不保证;精确场景用countDocuments()
🏷️ 相关标签
💡 相关案例
📚 相关教程
❓ 常见问题
QestimatedDocumentCount为什么比countDocuments快?
A它直接读集合元数据中的计数,不扫描任何文档;countDocuments()要实际匹配过滤条件。
QestimatedDocumentCount的结果准确吗?
A通常接近真实值,但不保证精确;写入频繁或分片场景下可能偏差明显。
Q两个count方法应该怎么选?
A要精确值或带条件过滤用countDocuments();只要数量级、追求速度用estimatedDocumentCount()。