2013-02-27 11 views
31

mongooseで 'findOneAndUpdate'を使用しようとしています。送信している更新されたJSオブジェクトがmongoに保存されていません。保存時にエラーは発生しませんが、更新されたオブジェクトのnullが返されます。私が間違っているかもしれない何かアイデア?これは、mongoに格納されているオブジェクト全体を更新しようとしている、つまり名前オブジェクトを上書きしようとしている例です。Mongoose findOneAndUpdateが動作しません

var query = {"_id": id}; 
var update = {name: {first: 'john', last: 'smith'}}; 
var options = {new: true}; 
People.findOneAndUpdate(query, update, options, function(err, person) { 
    if (err) { 
    console.log('got an error'); 
    } 

    // at this point person is null. 
}); 

答えて

26

私が探していたIDが存在しなかったことが分かります。したがって、nullが返されます。期待どおりに動作します!

+0

あなたの回答には、合格とマークしてください。 – verybadalloc

+1

あなたの文書にもっと多くのフィールドがあったら、それらはすべて削除されます。これは何とか避けることができるものだと確信しています。 –

+7

@SergioMajluf必要なフィールドのみを更新するために$ setを使うことができます。 – Haywire

関連する問題