findByIdAndUpdate возвращает ответ 200, но не обновляет - PullRequest
0 голосов
/ 28 марта 2019

Отправка запроса на размещение с помощью findAndUpdateById, который возвращает ответ 200 в почтальоне, но данные не обновляются.

Запрошенный запрос:

app.put("/api/report/update/:id", (req, res) => {
  Report.findByIdAndUpdate(
    req.params.id,
    req.body.data,
    { new: true },
    (err, report) => {
      if (err) return res.status(404).send({ message: err.message });
      return res.send({ message: "report updated!", report });
    }
  );
});

Форма отправленных данных:

    report: {
            month: "",
            updateMajor: "",
            updateMinor: "",
            comments: {
              comment1: "",
              comment2: "",
              comment3: ""
            },
          }

Данные возвращаются в точности как отправленные.

Спасибоза любую помощь.

1 Ответ

0 голосов
/ 28 марта 2019

вам нужно использовать оператор update, например $set, $unset, $push и т. Д. В вашем запросе на обновление. так как вы не используете ни одного из тех, вы получаете это поведение.

Если вы просто хотите установить отправляемое значение, попробуйте использовать его с $set.

Попробуйте это:

  Report.findByIdAndUpdate(
    req.params.id,
    {$set : req.body.data } ,
    { new: true },
    (err, report) => {
      if (err) return res.status(404).send({ message: err.message });
      return res.send({ message: "report updated!", report });
    }
  );

Примечание: $ set переопределяет предыдущее значение.

Если вам нужно что-то еще, пожалуйста, прочитайте подробную информацию в Обновление MongoDB. Операторская документация

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...