如何使用查找和更新编写 mongo 请求

Posted

技术标签:

【中文标题】如何使用查找和更新编写 mongo 请求【英文标题】:how to write mongo request using find and update 【发布时间】:2020-01-27 02:42:37 【问题描述】:

目前我有以下代码:

const getApi = 
   method: 'GET',
   uri: https://example.com,
   headers: 
     Authorization: 
       'api_secret_key'
    
    json: true

const updateObj = await rp(getApi);
updateObj.forEach(async param => 
    await DB1.findOneAndUpdate(
    
       data_id: param.id
    
  )
)

我正在使用旧版本的节点如何使用请求重写它。我正在使用 for each 和 findoneandupdate 从外部 api 到我的数据库。任何帮助我都无法在我的节点上使用此请求承诺..

【问题讨论】:

【参考方案1】:

当异步和等待循环时:

基本上 await 在forEach 循环中无法正常工作。使用 map 而不是 forEach。

updateObj.map(async param => 
    return await DB1.findOneAndUpdate(
    
       data_id: param.id
    
  )
)

了解更多:async & await in loop

【讨论】:

以上是关于如何使用查找和更新编写 mongo 请求的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 MongoStore 查找存储在 Mongo 中的会话?

如何使用 mongo、passport 和 node js 更新用户的个人资料?

nodejs中的多个异步mongo请求

如何避免 Mongo DB NoSQL 盲(睡眠)注入

如何使用节点 js 更新 mongo 文档中的数组元素?

如何在一个类的每个请求中使用不同的查找字段