2017-05-07 83 views
0

我正在使用貓鼬來查找和修改並保存回集合。 這是我曾嘗試:貓鼬查找並保存不更新文檔

if(req.body.writer){ 
    MyModel.find({writer: req.body.oldname},function (err, data) { 
       for(var i = 0; i < data.length; i++){ 
        data[i].writer= req.body.newName; 
        data[i].save()      
       } 
      }); 
} 

這是爲什麼沒有更新的文件? 問題在哪裏? 感謝

回答

1

嘗試更新方法:

if(req.body.writer && req.body.newName){ 
    MyModel.update(
     //search documents with old writer 
     { writer : req.body.oldname}, 
     // set writer as newName 
     { $set : { writer : req.body.newName} }, 
     {"multi": true}, 
     //check for error 
     function (err) { 
      if(err){ 
       res.status(500).send(err); 
      } 
      else{ 
       res.status(200).send('updated successfully..'); 
      } 
     } 
    ); 
} 
+0

這僅僅是更新一次出現。我如何更新所有匹配的文件? – cplus

+0

您需要傳遞{「multi」:true}作爲第三個參數。我已經更新了答案,請檢查。 –