我在
updateMany()
应用程序中使用 node.js
时遇到问题,出现 "Failed to update documents"
错误。我找不到问题所在。请帮助修复以下代码:
router.get("/list_desc/:phone/Updatemany", isLoggedIn, async (req, res) => {
try {
const filter = {
Phone_Number: req.params.phone,
remark: "",
transact_amount: {
$gte: 0
},
tran_status: {
$nin: ["Approved", "Paid"]
},
wired_amount: 0,
};
const update = {
$set: {
tran_status: "Approved",
remark: "Left sm",
},
};
const result = await Transact.updateMany(filter, update);
if (result.ok) {
res.redirect("/transact/list_desc_50");
} else {
throw new Error("Failed to update documents.");
}
} catch (error) {
console.error("Error:", error);
// return res.status(500).send("An error occurred while updating documents.");
return res.status(500).send(error.message);
}
});
Mongoose UpdateResult 有 5 个属性:
acknowledged
matchedCount
modifiedCount
upsertedCount
upsertedId
但是没有
ok
,因此 if (result.ok)
将始终采用代码中的 else 路径。
请使用
result.acknowldeged
来代替。