在mongodb中更新数组数组中的内部数组元素

时间:2018-02-21 17:42:45

标签: mongodb mongodb-query

我有以下mongodb文档结构:

{{1}}
  • 是否有可能以某种方式更新例如内部对象在哪里 本文档中 row = 1 col = 1
  • 或者我应该只更改整个文档的结构/也许创建一个 新系列?

1 个答案:

答案 0 :(得分:2)

您可以尝试以下更新。

注意使用double $elemMatch来到达嵌套数组并使用带有$set和index变量的位置运算符来更新内部数组元素。

位置运算符返回外部数组的索引。

db.col.update(
  {
    "_id": "c6b8S5Rx8xZiL42WS",
    "rows": {
      "$elemMatch": {
        "$elemMatch": {
          "row": 1,
          "col": 1
        }
      }
    }
  },
 { "$set": { ['rows.$.' + index + '.reserved']: true } } 
)