更新mongoose数据库中的子文档

时间:2016-07-14 07:02:48

标签: node.js mongoose

我在order_items(product_id,quantity,is_view)中使用user_id,order_items作为数组进行订单收集。 我想为特定订单的所有is_view(order_items)设置true。我该如何更新? 我尝试了以下代码:

hosts

1 个答案:

答案 0 :(得分:1)

在单个查询中无法执行此操作。你可以使用forEach:

db.order.findOne({_id: req.params.order_id}).forEach(function(doc) {
   doc.order_items.forEach(function(item) {
      item.is_view = false;
   }
   db.order.save(doc);
});

猫鼬也一样:

Order.findOne({_id: req.params.order_id}).forEach(function(doc) {
       doc.order_items.forEach(function(item) {
          item.is_view = false;
       }
       doc.save();
    });