我使用MongoDB和node js,我使用了npm install mongodb
我想更新现有文档并返回更新后的文档,文档已正确更新.但它返回旧文档,即更新前的原始文档.我使用了returnNewDocument:true
参数,但没有使用.
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);
}
});
答案是
{ lastErrorObject: { updatedExisting: true, n: 1 },
value:
{
//original document
},
ok: 1 }
当我通过终端直接go mongoDB并try
db.MyCollection.find().pretty();
文档已正确更新,它只返回原始文档,而不是更新的文档.
在这里停留了两个小时,感谢您的帮助
打包的.json
"mongodb": "^2.1.4",