在forEach循环中运行猫鼬保存查询

时间:2020-10-16 10:26:19

标签: javascript node.js mongodb mongoose

我的graphql解析器有以下查询:

  setFeatured: async function ({ id }, req) {
    const post = await Post.findById(id)
    const posts = await Post.where('_id').ne(id)
    post.featured = true
    await post.save()
    posts.forEach(pst => {
      pst.featured = false
      await post.save()
    })
    return true
  }

使用上面的代码片段,我想将用户未选择的帖子的状态设置为false,反之亦然。

但是我的控制台出现此错误

语法错误:等待仅在异步功能中有效 指向forEach循环内的行await post.save()

如何为每个帖子运行此save()查询?

1 个答案:

答案 0 :(得分:0)

您还需要将异步传递给传递给forEach的回调。

[Amazon](500310) Invalid operation: HTTP 416. Check your arguments and try again.;

一种与您不同的方法,如果在任何给定时间只有一个特色帖子,则可以将特色字段与帖子分开,并有一个记录来保留帖子ID。