使用API我想要对MongoDB对象进行完整的文档更新。
这是我当前的代码,但每次都必须删除_id感觉不对。有更好的方法吗?
PutDoco : function(doco){
return new Promise(function(Resolve,Reject){
delete doco._id;
db.collection('docos').updateOne(
{"details.ID":doco.details.ID},
doco,
function(err,result){
if(err)
return Reject(err);
Resolve(result);
}
);
});
},
答案 0 :(得分:2)
当替换文档的所有内容时(_id
除了不可变),您可以使用replaceOne
。并且因为replaceOne
返回一个承诺,如果你没有传递一个回调,你可以将整个函数减少到:
return db.collection('docos').replaceOne({"details.ID":doco.details.ID}, doco);
但是,使用_id
找到要替换的文档可能更清晰(也更快):
return db.collection('docos').replaceOne({_id: doco._id}, doco);