动态更新MongoDB数组的索引

时间:2018-10-08 11:58:18

标签: node.js mongodb

我想在Node.js中动态更新FirstCol数组的任何索引。我该如何在这个收藏集中做到这一点。

   {
     "TableId": "0",
     "FirstCol": [
        "Have high energy ",
        "Talk more than listen "
     ]
    }

我知道我可以使用点运算符来更新特定的数组索引。例如:

 db.testcol.update(
    { "TableId": "0" },
    { $set:
      {
        "FirstCol.1": "rain gear"
      }
     }
    )

但是,如果我不知道必须编辑数组FirstCol的索引1,该怎么办。如何构建更新查询以更新数组的索引(假定在变量“ editIndex”中)。 我可以做类似的事情吗?

db.testcol.update(
        { "TableId": "0" },
        { $set:
          {
            "FirstCol.editIndex": "rain gear"
          }
         }
        )

需要您的帮助。谢谢:)

1 个答案:

答案 0 :(得分:2)

您可以尝试使用ES6 Computed Property Keys方法

db.testcol.update(
  { "TableId": "0" },
  { "$set": {
    ["FirstCol." + editIndex]: "rain gear"
  }},
  function(err, res) {
    console.log(err)
    console.log(res)
  }
)