我在Exress js中使用mongodb查询,但无法处理任何错误,例如我有查询
db.collection('prowd').deleteOne({_id: ObjectID( id)}, (err, result) => {
if (err){return console.log(err)}
else res.send(result)
})
即使我的数据库中没有任何“ prowd”集合,为什么我在控制台中没有看到任何错误?
当我对此API提出要求时,从反应端获得成功消息
onDeleteProduct(id) {
axios
.post("/delete-product", {
id
})
.then(() => {
Swal.fire({
icon: "success",
title: "Product Deleted Successfully !",
showConfirmButton: false,
timer: 1500
});
})
.catch(err => {
Swal.fire({
icon: "success",
title: "Task failed !",
showConfirmButton: false,
timer: 1500
});
});
}
对于我写的查询,我应该得到
任务失败
答案 0 :(得分:0)
查询成功执行,未删除任何记录。因此,我们没有错误,这意味着err == null
,但是您可以看到result.result.n
将是0
,这意味着 受影响的记录数
您可以看到以下代码:
db.collection('prowd').deleteOne({ _id: ObjectID(id) }, (err, result) => {
if (err) { return console.log(err) }
console.log(result.result.n); // ==> that is 0 if not exist any record
})
关于为什么我们没有任何集合甚至没有数据库,但是Mongo仍然可以成功执行的原因,那就是Mongo不需要关于集合或数据库存在的约束,它是NoSQL。
感谢您阅读:D