$pull не работает при удалении объекта из списка в mongodb

#mongodb #mongoose #mongodb-query #backend #mongoose-schema

Вопрос:

Возникли проблемы с удалением объекта в мангусте. У меня есть следующий пользователь в схеме пользователя:

 {
    "isAdmin": false,
    "_id": "6079951b7e1c0d400ce394ab",
    "name": "user5",
    "email": "user5@gmail.com",
    "myCart": [
        {
            "_id": "607995467e1c0d400ce394ac",
            "cart": "607001c41e495c2d10361ac4",
            "qty": 6
        },
        {
            "_id": "607995577e1c0d400ce394ad",
            "cart": "607001c41e495c2d10361ac8",
            "qty": 2
        },
        {
            "_id": "6079b07e7e1c0d400ce394ae",
            "cart": "607001c41e495c2d10361ac6",
            "qty": 4
        }
    ],
    "__v": 0
}
 

Я хочу удалить определенный объект из myCart. Я использую следующий запрос, но ничего не происходит:

 router.post("/delete/:id", auth, async (req, res) => {
  try {
    User.findOneAndUpdate(
      { _id: req.user.id },
      {
        $pull: {
          myCart: { _id: req.params.id },
        },
      }
    );
    res.send("Product removed");
  } catch (err) {
    console.error(err.message);
    res.status(500).send("Server Error");
  }
});
 

Что в этом плохого? enter code here

Комментарии:

1. преобразуйте req.params.id строковый тип в ObjectId, если его objectid в коллекции базы данных с помощью mongoose.Types.ObjectId(req.params.id)