2016-07-14 12 views
0

私はuser_id、order_itemsをorder_items(product_id、quantity、is_view)の配列としてオーダーコレクションを持っています。 特定の注文のすべてのis_view(order_items)にtrueを設定します。どうすれば更新できますか? 私は以下のコードを試しました:mongooseデータベースのサブ文書を更新する

Order.udpate({_id: req.params.order_id}, $set: {"order_items.$.is_view": false}) 

答えて

1

1つのクエリでこれを行う方法はありません。マングースに同じ

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); 
}); 

:あなたはforEachのを使用することができます

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

この1つは私のために働きました。 Order.findOne({_ ID:req.params.order_id}、関数(ERR、DOC){ doc.order_items.forEach(関数(アイテム){ item.is_view = TRUE;} ) doc.save() ; }); – Sunny

+0

あなたはそうです。私は '一つ' –

関連する問題