countDocuments()(按条件计数)

最后更新:2026-10-09

countDocuments()(按条件计数)

countDocuments()统计集合中匹配过滤条件的文档数量,例如`db.users.countDocuments({ age: { $gte: 18 } })`。它在服务端执行并返回精确计数值。与estimatedDocumentCount()不同,countDocuments()会真正匹配条件,因此统计准确但速度较慢,适合需要精确计数的场景。对超大集合的性能敏感查询建议结合索引。

分类读取
MongoDB 版本1.0+
示例语言mongosh (Shell)

📝 语法

db.<集合>.countDocuments(<过滤条件>, { limit: <数量> })

⚙️ 参数

过滤条件计数条件对象;空{}统计集合全部文档。
limit可选。最多计数的文档数上限。

返回值:匹配条件的文档数量(整数)。

▶ 示例

请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):

// countDocuments:统计成年用户数量
const n = db.users.countDocuments({ age: { $gte: 18 } })
print('成年用户数: ' + n)

运行结果:

成年用户数: 42

📌 注意事项

📚 相关教程

❓ 常见问题

QcountDocuments和estimatedDocumentCount有什么区别?
AcountDocuments()精确匹配条件但较慢;estimatedDocumentCount()用集合元数据估算,快但可能不准。
QcountDocuments为什么不推荐直接数全集合?
A它要扫描匹配条件,统计大集合全量很慢。只要数量级而非精确值,用estimatedDocumentCount()更合适。
QcountDocuments查不到结果返回0还是报错?
A返回0,不会报错。可以安全地用于条件判断。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏