node.js - 游标 batchSize 如何在 node-mongodb-native 驱动程序中工作?

标签 node.js mongodb node-mongodb-native

我正在使用 mongodb-native-driver,我不太明白为什么他们总是在文档示例中设置 batchSize=1。

http://mongodb.github.io/node-mongodb-native/2.0/api/AggregationCursor.html#each

根据官方文档,不应使用等于 1 的 batchSize: https://docs.mongodb.org/v3.0/reference/method/cursor.batchSize/

如果我设置 batchSize=1 会怎样?每次检索文档时是否强制转到数据库?

这对我来说听起来真的很奇怪......这两个引用资料是官方来源,所以我想我遗漏了什么。

最佳答案

您指的是 mongo shell 文档 - 如果您在那里使用 cursor.batchSize(1),它将与 limit() 一样工作。

shell 的行为与驱动程序的行为略有不同。

您展示的示例来自 mongodb node.js 驱动程序(而不是来自 mongo shell)。在那里使用 batchSzie(1) 是可以的。它将强制驱动程序转到数据库并在每次迭代中获取一个文档。您可以通过这种方式控制存储在内存中的文档数量。数字越大,从客户端到数据库的请求越少,您在客户端内存中存储的文档越多,同时遍历它们。

在您提供的示例中,{cursor: {batchSize:1}} 是“聚合”方法的选项之一。 read the documentation here

关于node.js - 游标 batchSize 如何在 node-mongodb-native 驱动程序中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33742945/

相关文章:

javascript - 如何使用异步模块在nodejs中实现回滚?

windows - Node.js 开发,windows 还是 linux?

java - 使用 MongoClientOptions 设置 MongoDB Url

mongodb - 客户端退出后 Pymongo 放弃 "pymongo_kill_cursors_thread"

python mongodb $match 和 $group

mongodb - 如何格式化 mongodb 查找查询的结果?

javascript - 将所有图像文件从 node.js 发送到前端

node.js - 如何释放nodeJS Q promise 链中的资源并返回 promise ?

node.js - 蒙哥错误: must have $meta projection for all $meta sort keys using Mongo DB Native NodeJS Driver

mongodb-nodejs-driver,DeprecationWarning : collection. 计数已弃用