Mongo 更新数组的子文档

3

我有一个集合,它的结构如下所示。我需要帮助编写更新查询。

{ 
  id: 1, 
  line_items: [
    {
      id: 43,
      review_request_sent: true
    }
  ]
},
{
  id: 2,
  line_items: [
    {
      id: 1,
      review_request_sent: false
    },
    {
      id: 39
    },
 ]
},
{
  id: 3,
  line_items: [
    {
     id: 23,
     review_request_sent: true
    },
    {
     id: 85,
     review_request_sent: true
    },
    {
     id: 12,
     review_request_sent: false
    }
  ]
}

我希望你能帮忙更新一个文档。假设要将id为3且line_item对象id为12的review_request_sent更新为true。
因此,最终的文档如下:
{
  id: 3,
  line_items: [
    {
     id: 23,
     review_request_sent: true
    },
    {
     id: 85,
     review_request_sent: true
    },
    {
     id: 12,
     review_request_sent: true
    }
  ]
}
1个回答

12
你可以使用 $ 定位操作符
Model.update(
    { 'id': 3, 'line_items.id': 12 }, 
    { $set: { 
        'line_items.$.review_request_sent': false
    }}, function (err, numAffected) { ... }
);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接