我克隆了对象"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})
。由于该文档不是使用特定会话创建的,因此该文档在该会话中不可用。