如何将 updateMany() 与 Node.js 异步方法一起使用?

问题描述 投票:0回答:1

我在

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);
  }
});
node.js mongodb mongoose
1个回答
0
投票

Mongoose UpdateResult 有 5 个属性:

acknowledged
matchedCount
modifiedCount
upsertedCount
upsertedId

但是没有

ok
,因此
if (result.ok)
将始终采用代码中的 else 路径。

请使用

result.acknowldeged
来代替。

© www.soinside.com 2019 - 2024. All rights reserved.