我使用的是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会发生什么?它会在我每次检索文档时强制转到数据库吗?
对我来说听起来真的很奇怪。这两个参考资料是官方资料,所以我想我漏掉了一些东西。
发布于 2015-11-24 17:13:44
您引用的是mongo shell文档-如果您在其中使用cursor.batchSize(1),它将与limit()的工作方式相同。
shell的行为与驱动程序的行为略有不同。
您展示的示例来自mongodb node.js驱动程序(而不是mongo shell)。在那里使用batchSzie(1)是可以的。它将强制驱动程序访问数据库,并在每次迭代中选择一个文档。您可以通过这种方式控制存储在内存中的文档数量。这个数字越大,从客户端到数据库的请求就越少,在迭代这些文档时,您在客户端内存中存储的文档就越多。
在您提供的示例中,{cursor:{batchSize:1}}是"aggregate“方法的选项之一。read the documentation here
https://stackoverflow.com/questions/33742945
复制相似问题