Вам необходимо использовать found.save()
вместо user.save()
.
Также этот тип обновления можно выполнить за один go с использованием позиционного оператора mongodb $ .
router.post("/admin/update/:userid/:issueid", async (req, res) => {
var status = req.body.status;
var userId = req.params.userid;
var issueId = req.params.issueid;
if (isNull(issueId & userId) || !ObjectId.isValid(issueId & userId)) {
return ReE(
res,
{ message: "Please provide a valid issueId and userID" },
HttpStatus.BAD_REQUEST
);
}
let updatedUser;
[err, updatedUser] = await to(
User.findByIdAndUpdate(
userId,
{ $inc: { "issues.$[inner].status": status } },
{ arrayFilters: [{ "inner._id": issueId }], new: true }
)
);
if (err) {
return ReE(res, err, 500);
}
if (!updatedUser) {
return ReE(res, "User or Issue not found", 400);
}
ReS(res, "Issue Updated", HttpStatus.OK);
});