更新嵌套数组上的字段

时间:2016-06-27 11:19:16

标签: arrays mongodb mongoose mongodb-query

我的模型如何:

_id:ObjectId("5705005b240166e927f841cb")
figures: [
  {
    id: "5433234"
    figure: [
     {
      "id":"figure_543",
      "active": false,
      "name": "Alvar"
     },
     {
      "id":"figure_431",
      "active": false,
      "name": "Peter"
     }
    ]
  },
  {
    id: "1276544"
    figure: [
     {
      "id":"figure_123",
      "active": false,
      "name": "Jhon"
     }
    ]
  },
  {
    id: "1231645"
    figure: [
     {
      "id":"figure_154",
      "active": false,
      "name": "Luka"
     }
    ]
  }
]

我这样做:

db.collection.update({"_id": userId, "figures.figure.id": figureId}, {$set:{"figures.figure.$.active": true}})

userId figureId 是来自expressjs上的req.body的变量。

但我明白这一点:

  

位置$运算符不能用于遍历多个数组的查询,例如遍历嵌套在其他数组中的数组的查询,因为$ placeholder的替换是单个值

我的问题是,如何使用mongoose更新嵌套数组上 figure 的字段活动

感谢的!!!

0 个答案:

没有答案