batchSize()(设置批量拉取大小)
最后更新:2026-10-09
batchSize()(设置批量拉取大小)
batchSize()设置游标每次向服务器批量拉取的文档数,语法为`db.users.find().batchSize(100)`。它影响网络往返次数与内存占用之间的平衡:批越大往返越少但单次内存占用越高。通常不需要手动设置,服务器有默认值;在慢网络或超大结果集场景调整batchSize可以改善吞吐。
| 分类 | 游标 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
db.<集合>.find(<条件>).batchSize(<数量>)
⚙️ 参数
| 数量 | 每批拉取的文档数;0表示使用默认值。 |
|---|
返回值:设置批量大小后的游标(可继续链式调用)。
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// batchSize:每批只拉50条,边拉边处理
const cursor = db.users.find().batchSize(50)
cursor.forEach(doc => print(doc.name))
运行结果:
Alice
Bob
Cara
📌 注意事项
- 0表示用服务器默认批量大小
- 批大小过大会增加单次网络传输的内存占用
- 配合forEach()流式遍历效果最佳
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
QbatchSize怎么设置比较好?
A一般用默认即可;大结果集且网络较好时可调大减少往返,内存紧张时调小。
QbatchSize和limit有什么区别?
Alimit()限制最终返回的文档总数;batchSize()只控制每次传输的块大小,不影响总结果数。
QbatchSize(0)是什么意思?
A0表示使用服务器默认的批量大小。