2016-06-24 8 views
0

は、私は成功せず、文書内のデータを更新しようとしていますマングースの自動インクリメントの混乱

...その心の中でのように、マングースの初心者です。 以下のコードは、期待どおりにドキュメントを識別し、期待どおりにモデルを変更します。しかし、更新されたモデルは、MongoDBのに保存されていないと私は... 理由を説明するために途方に暮れています(おそらく、私がfindOneAndUpdate命令を使用する必要がありますが、このように断片的な作業は従うことが容易になります。)

UserModel.findOne({memberID: req.params.memberID}, function(err, foundObject) { 
     if(err) { 
      console.log('ERROR PUT:/updateUser -> ' + err); 
      res.status(500).send(); 
     } else { 
      if(!foundObject) { 
       console.log('ERROR - PUT:/updateUser, No such record -> ' + req.params.memberID); 
       res.status(500).send(); 
      } else { 
       console.log("1 :" + foundObject.info.fName); 
       if(req.body.fName) 
        foundObject.info.fName = req.body.fName; 
       console.log("2 :" + foundObject.info.fName); 

       foundObject.update(function(err, updatedObject) { 
        if(err) { 
         console.log('ERROR - PUT:/updateUser, SAVE FAIL -> ' + err); 
         res.status(500).send(); 
        } else { 
         res.status(200).send(updatedObject); 
        } 
       }); 
      } 
     } 
    }); 

(私はテストするために使用しています)ポストマンから出力 ある{ "OK":1、 "nModified":0、 "n" は:1 } とDBに直接、コンソールクエリは変化を示しません。

+1

なっていることを確認してください。 –

+0

あなたは1レコードを見つけようとしています。 FindAnyModifyを使用してみませんか? 'https:// docs.mongodb.com/manual/reference/method/db.collection.findAndModify /' –

+0

を参照してください。自動インクリメントの混乱とはどういう意味ですか? –

答えて

1

これを試すことができます。

UserModel.findOneAndUpdate({memberID: req.params.memberID}, {$set: {"info.fName" : req.body.fName}}, {new: true}) 
    .exec(function (error, updatedUser) { 
     if (error) { 
      return res.status(400).send({msg: 'Update failed'}); 
     } 
     return res.status(200).send(updatedUser); 
    }); 

N.B:foundObject.save機能を試すreq.params.memberIDreq.body.fNameが代わりfoundObject.updateの正確

+0

'' info.fName ':req.body.fName' – robertklep

+0

Typo :(ありがとう:) –

+0

ありがとうございます。いつものように、私は問題を複雑にしていた – richardfr

関連する問題