如何基于多个条件更新MongoDB集合而无需循环

时间:2018-07-24 08:46:40

标签: javascript node.js mongodb mongoose

对于我们的一个Node.js应用程序-我们有一个MongoDB集合,如下所示:

[
  {
    "field1": {
      "key1": true,
      "key2": false
    }
  },
  {
    "field1": {
      "key1": true,
      "key2": true
    }
  }
]

我们需要使用以下逻辑进行更新:

  • 对于每个文档
    • 如果field1存在
      • 如果key1key2true
        • field1设置为[key1, key2]
      • 如果key1key2false
        • field1设置为[]
      • 如果key1true并且key2false
        • field1设置为[key1]
      • 如果key1false并且key2true
        • field1设置为[key2]

如您所见,我这里有 多个条件

我知道以下update command

document.update({
    condition
  }, {
    $set: {
      required updates
    }
  }, {
    multi: true
  })
  .then(() => {})
  .catch((err) => {});

或者我可能会在每个文档上循环播放,但这太白了。 MongoDB中有一些高级功能可以处理吗?

此更新命令的问题是我不能有多个条件语句和多个相应的$set命令。

因此问题归结为:

  

如何基于多个条件和多个相应的$set命令来更新MongoDB集合。

0 个答案:

没有答案