2017-01-09 10 views
0

更新されたデータが必要な場合にfindByIdAndUpdateのために{new:true}を更新して取得します。更新機能を使ってどうすればいいのですか?mongodb:更新されたデータを更新して取得するためにupdate()を使用する

mBooking.update(updateDbParams.condition, updateDbParams.update, function(error, resultData) { 
    if(error) 
     res.json(mResponse.response(null, null, "something went wrong", null)); 
    else 
     { 
     console.log(resultData); 
     } 
}); 

so console.logが返されます。

{ ok: 1, 
    nModified: 1, 
    n: 1, 
    opTime: 
    { ts: Timestamp { _bsontype: 'Timestamp', low_: 1, high_: 1483945954 }, 
    t: 1 }, 
    electionId: 7fffffff0000000000000001 } 

答えて

1

あなたはfindAndModifyが動作していないのに対し、それは、うまくnew:trueオプション

mBooking.findOneAndUpdate(updateDbParams.condition, updateDbParams.update, {new:true}, function(error, resultData) { 
    if(error) 
     res.json(mResponse.response(null, null, "something went wrong", null)); 
    else 
     { 
     console.log(resultData); 
     } 
}); 
+0

うんでfindOneAndUpdateを使用することができます。ありがとう! –

+0

あなたは歓迎です:) –

0

MongoDBのfindAndModifyを使用できます。私はそれに相当するノードドライバについてはあまりよく分かりません。

単一のドキュメントを変更して返します。既定では、返された ドキュメントには、更新プログラムに加えられた変更は含まれていません。 に更新プログラムの変更内容を含むドキュメントを返すには、 新しいオプションを使用します。 findAndModify()メソッドは、 findAndModifyコマンドのシェルヘルパーです。

0

mongoose update関数は、更新されたドキュメントを返しません。これはhereと表示されます。

説明したように、{new:true}を持つmongooseのfindByIdAndUpdate関数が最適です。また、findById - > saveのより長いバージョンも表示されます。

関連する問題