gpt4 book ai didi

node.js - 一种高效地逐一检查集合中所有数据的方法(nodejs、mongoose)

转载 作者:太空宇宙 更新时间:2023-11-04 01:22:06 26 4
gpt4 key购买 nike

要解决的问题我想一一读取 mongodb 集合中的所有文档,并将 API(使用 npm 请求模块)结果保存在另一个集合($out)中。

我的努力我只是尝试在async/await中一一取出值并一一发送请求

let data = await models.myCollection.find();

并通过迭代语句将数据数组请求一一发送,如下代码。

for( let i = 0 ; i < data.length ; i++ ) {
await request(...);
}

馆藏文献数量约1500篇。

期望当我按照上面的步骤进行时,没有错误。但我想知道什么是有效的逻辑。(我认为如果有 sample 会更好。)

谢谢。

最佳答案

虽然我之前没有尝试过这种方法,但请验证我的方法并提出质疑。我的建议是使用streams。我之前曾使用它来转换大型 JSON 文件中的数据。

您可以在这里引用一些文档:https://mongodb.github.io/node-mongodb-native/2.0/tutorials/streams/

RxJS 是一个对我有用的处理流的 NPM 模块。它具有易于掌握的可观察和订阅者模式。引用:https://github.com/Reactive-Extensions/RxJS

对于您的示例,如果要扩展到数百万或数千条记录,您只需处理每个文档并调用 API。更好的方法是批量处理请求,您可以获取 100 或 1000 的倍数,并调用 API 一次来更新所有记录。

关于node.js - 一种高效地逐一检查集合中所有数据的方法(nodejs、mongoose),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58869278/

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