gpt4 book ai didi

javascript - collection.find().stream() 和 collection.find().batchSize(100).stream() 的区别?

转载 作者:行者123 更新时间:2023-11-30 17:07:33 25 4
gpt4 key购买 nike

collection.find().stream() 和 collection.find().batchSize(100).stream() 之间有什么区别?

最佳答案

关于 .batchSize() 的内容,我之前似乎遇到了一些普遍的困惑。其实是为了。常见的混淆是它类似于 .limit()。文档中的这条注释并没有真正帮助:

NOTE:
Specifying 1 or a negative number is analogous to using the limit() method.

虽然该陈述对于那个示例点来说基本上是正确的,但一般目的是不同的。

迭代“游标”或使用 .stream() 时API,它是 node.js 的一个实现 stream可读接口(interface)(以及 2.0 版游标的默认设置),使用此接口(interface)与服务器通信时,驱动程序进行了底层优化。

当您使用游标 .next()"data" .on() 时流的方法,这实际上并没有返回到服务器,只是获取结果集中的下一个文档。它实际上做的是在游标中获取与作为参数给出的“batchSize”对应的“批处理”文档。

这允许您在此处修改默认值并将默认值“更改”为更适合您自己的流程的值。

不同于 .toArray() 等方法这不会尝试在单个数据库调用中将整个结果集读取到内存中的变量中(实际上从来没有真正这样做过)。 cursor 和 stream 方法允许处理“游标”,其中结果以“批处理”提取,通常“单独”处理。

关于javascript - collection.find().stream() 和 collection.find().batchSize(100).stream() 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27684819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com