【发布时间】:2021-06-05 18:40:43
【问题描述】:
我正在连接一个名为“Users”的 mongodb 集合,该集合具有 _id 字段。我正在尝试使用 mongodb findOneAndUpdate() 方法在数据库中查找和更新现有文档。首先,我将 id 作为参数传递给我的函数,它工作正常。该文档确实使用 $set 方法进行了更新,但是当它应该在没有现有文档时捕获拒绝时仍然输出解析。
我如何通过 promise 捕获错误。我认为这里的问题是我没有从 mongodb api 得到任何响应,除非我将它传递给一个变量。但是仍然知道这一点,当没有与查询不匹配的现有文档时,我如何捕获错误?
这是我的代码:
let findOneAndUpdate = ( (id) => {
return new Promise( (resolve, reject) => {
if(id){
db.collection('Users').findOneAndUpdate({_id: new ObjectID(id)}, {
$set: {
name: 'Andrea',
age: 1,
location: 'Andromeda'
}
}
);
resolve('Document matching the _id has been successfully updated.')
}else{
reject(new Error('Unable to find the _id matching your query'));
}
});
});
传入一个id并调用我的promise
const find = findOneAndUpdate('id 在这里');
find.then(
success => console.log(success),
).catch(
reason => console.log(reason)
)
感谢任何帮助,在此先感谢!
【问题讨论】:
标签: node.js mongodb error-handling es6-promise