cursor batchSize如何在node-mongodb-native驱动程序中工作?

我使用的是mongodb-native-driver,我不太明白为什么他们总是在doc示例中设置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)。 它会强制驱动程序到数据库并在每次迭代中选取一个文件。 您可以通过这种方式控制存储在内存中的文档数量。 数字越高,从客户端到数据库的请求越less,在客户端内存中存储的文档越多,而遍历它们越多。

在你提供的例子{cursor:{batchSize:1}}是“聚合”方法的选项之一。 在这里阅读文档