2017-05-07 14 views
0

私はmongooseを使用して検索し、変更してコレクションに保存し直します。なぜこれがドキュメントを更新していないmongoose文書を更新しないで検索して保存します

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

第3のパラメータとして{"multi":true}を渡す必要があります。私は答えを更新しました。確認してください。 –

関連する問題