gpt4 book ai didi

javascript - mongodb .toArray 与 .each (阻塞与异步?)

转载 作者:行者123 更新时间:2023-11-28 05:14:26 25 4
gpt4 key购买 nike

我的问题是以下哪一个是阻塞的,因此不推荐用于nodejs

  1. db.collection("allinfo").find({somekey: "someval"}).each(function(err, item){//我们得到每一项.... });
  2. db.collection("allinfo").find({somekey: "someval"}).toArray(function(err, allitems){//我们得到整个数组.... });

应该首选哪一个以及何时?

最佳答案

因此,这里的真正区别很少,并且很大程度上取决于您的情况。

db.collection("allinfo").find({somekey: "someval"})

这里主要的是这个^。 find 打开一个光标,它不是那么重。它实际上非常快 - 下一部分使用 toArrayeach 全部读取光标。

根据我的经验,当结果计数不够时,我会使用 each ——我不需要它。当打开的游标的长度对于相关算法至关重要时,或者如果我将其传递给另一个处理数组的函数,而不是处理每个单独项目的函数时,我会使用 toArray。

这些项目都不是阻塞的,mongo 在 Nodejs 的异步事件循环中本地运行。您必须手动强制光标同步,但不建议这样做。

关于javascript - mongodb .toArray 与 .each (阻塞与异步?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41094832/

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