こんにちは、私はノードのJSとMongoBDを使用していますが、私は、既存のドキュメントを更新し、更新されたドキュメントを返すようにしたい、ドキュメントが正しく更新されnpm install mongodb
findOneAndUpdate:真を返すオリジナル文書のMongoDB
を使用しました。古いドキュメントを返すのは、更新前の元のドキュメントを意味します。私はreturnNewDocument:true
パラメータを使用していますが、使用はしていません。私が直接端子を介してのMongoDBに移動して、ドキュメントが正しく更新され
db.MyCollection.find().pretty();
しようとすると、
var filter = {
'_id': object_id
},
update = {
$set: { "status" : data["status"] },
$push: {
"statusHistory": {
$each: [{ status:data["status"],statusChangedTime:data["statusChangedTime"],comment:data["comment"]}],
$position:0,
}
},
}
,options = {
//upsert: false,
//multi: false,
returnNewDocument: true
};
col.findOneAndUpdate(filter, update, options,function(err, res) {
if (err) {
console.log(err);
}else {
console.log(res);
}
});
応答はそれだけで元の代わりに、1を更新返し、
{ lastErrorObject: { updatedExisting: true, n: 1 },
value:
{
//original document
},
ok: 1 }
です。
Node.jsのdriver documentationがためのオプションである(findOneAndUpdate()
ためreturnNewDocument
オプションは言及していない
"mongodb": "^2.1.4",
使用しているのMongoDBのバージョンは何? 3.2? – Saleem