count()(游标计数)
最后更新:2026-10-09
count()(游标计数)
count()统计当前游标会返回的文档数量,语法为`db.users.find({ age: { $gt: 20 } }).count()`。它作用于游标而非集合,因此会先应用find的条件再计数。注意:该方法已废弃,官方推荐改用`db.users.countDocuments()`,两者语义等价且新方法对分片更准确。
| 分类 | 游标 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
db.<集合>.find(<条件>).count()
返回值:游标将返回的文档数量(整数)。
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// count:统计年龄大于20的用户数量
const n = db.users.find({ age: { $gt: 20 } }).count()
print(n)
运行结果:
35
📌 注意事项
- 官方已废弃,新代码用countDocuments()替代
- 与countDocuments()语义一致,但分片场景精度可能更差
- count()不会消费游标,可继续遍历
🏷️ 相关标签
💡 相关案例
📚 相关教程
❓ 常见问题
Qcount()还能用吗?
A能用但已废弃,官方建议新代码改用countDocuments(),语义一致且更准确。
Qcount()和countDocuments()有区别吗?
A语义基本相同,都按条件精确计数;countDocuments()是官方推荐的替代方法,分片下更可靠。
Qcount之后还能继续取数据吗?
A可以,count()只是统计,不会消耗游标,之后还能toArray()或forEach()。