我正在使用Node.js更新我的文档,我需要在更新后获取该文档ID。我在下面解释我的代码。
var udata={
name:name,
company:company,
position:position,
mobile:mobile,
email: email,
landline: landline,
url:url,
postcode:postcode,
address:address,
profiletext:profiletext,
biography:biography,
updated_date:updateDate,
file:file
}
db.f_card_details.update({userid:userid},{$set:udata},function(error,docum){
if (!error) {
if (docum) {
console.log('document',docum);
var edata=[{"id": docum._id}];
var data={"statusCode": 200,"data":edata ,"message": "Your card details has been updated successfully"};
res.send(data);
}
}else{
var data={"statusCode": 404,"error": "Not Found","message": "Your card details could not updated"};
res.send(data);
}
})
此处我在更新后未收到该文档object id
。
答案 0 :(得分:0)
来自mongodb.com this link -
“update()方法返回包含操作状态的WriteResult对象。成功时,WriteResult对象包含与查询条件匹配的文档数,更新插入的文档数和数字修改过的文件:
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
“
答案 1 :(得分:0)
尝试使用findOneAndUpdate
它将返回旧文档,但您可以设置returnNewDocument : true
标志以使其返回新标记。
所以你的代码应该是这样的:
db.f_card_details.findOneAndUpdate({userid:userid},{$set:udata},function(error,docum){
console.log(docum._id);
})