错误 "DocumentNotFoundError: No document found for query " { _id:xxx}



我克隆了对象"preventivo";,当我运行此代码时,我会出现以下错误:(节点:24548(未处理的PromiseRejection警告:未处理的promise拒绝(拒绝id:1(:DocumentNotFoundError:未找到用于查询的文档"{_id:5ff6110e27bbf25fe45ce2b5}";关于模型";preventivi";我不能理解这个错误,你能帮我吗?我使用节点+猫鼬+把手感谢

//ROUTE CLONA PREVENTIVO
app.post('/preventivi/dbpreventivi/:id/clone' ,accessoSicuro,(req , res) =>{
Preventivi.findOne({
_id: req.params.id
})  
.then(preventivo => {    
var newdoc = new Preventivi(preventivo);
newdoc._id = mongoose.Types.ObjectId();
delete newdoc.__v;
newdoc.save();
console.log(newdoc._id)

req.flash("msg_successo", "Preventivo clonato correttamente");
res.redirect("/preventivi/dbpreventivi");
});
});
//fine route clona preventivo

Html:

<form  action="/preventivi/dbpreventivi/{{_id}}/clone?_method=POST" method="post">
<input type="hidden" name="_method" value="POST">
<input onclick="return confirm('Vuoi clonare il preventivo: {{cliente}} {{codice}} ?');"  type="submit" class="btn btn-warning btn-sm" value="Clona">
</form>   

您可以尝试添加newdoc.isNew=true:

//ROUTE CLONA PREVENTIVO
app.post('/preventivi/dbpreventivi/:id/clone' ,accessoSicuro,(req , res) =>{
Preventivi.findOne({
_id: req.params.id
})  
.then(preventivo => {    
var newdoc = new Preventivi(preventivo);
newdoc._id = mongoose.Types.ObjectId();
newdoc.isNew = true;      
newdoc.save();
console.log(newdoc._id)     
req.flash("msg_successo", "Preventivo clonato correttamente");
res.redirect("/preventivi/dbpreventivi");
});
});
//fine route clona preventivo

Mine,正在使用"异步映射";不正确的方式。我确实更新了";异步映射";方法如下:

makerOrders.map(async makerOrder => {
....
try {
await Order.findByIdAndUpdate(makerOrder._id, {
remainder: makerOrder.remainder,
});
} catch (error) {
console.log(' order.save(); ' + err);
return err(`Maker order is not updated. ${err}`, 500);
}
...
});

即使使用try-catch也没有发现错误,它有3天的时间来解决!

希望帮助别人:(

我也有同样的错误。我在documentObject=model.create({...data})查询中未使用会话,而在另一个查询中使用documentObject.save({session})。由于该文档不是使用特定会话创建的,因此该文档在该会话中不可用。

相关内容

最新更新