У меня есть модель с множеством ключей / значений и маршрутом PUT для обновления модели. Я хочу иметь возможность отправлять req.body
в метод mon goose findByIdAndUpdate
.
Например, вот часть модели.
"generalInfo": {
"tailNum": 1231231231231,
"model": "sd9ia0da",
"maxGasFuel": 1286123,
"wingSurfaceArea": 123,
"thrust": 123123,
"takeOffSpeed": 123,
"coeficientOfLift": 12334
}
Когда я отправляю запрос на обновление значения tailNum
, он стирает все остальное в объекте generalInfo
и оставляет только ключ / значение tailNum
.
Вот мой код для запроса PUT.
// * @route PUT /api/aircraft/:id
// ? @desc Update an aircraft by ID
// ! @access Private
router.put("/:id", auth, async (req, res) => {
try {
const dbAircraft = await Aircraft.findByIdAndUpdate(
req.params.id,
req.body,
{ new: true, runValidators: true }
);
res.json(dbAircraft);
} catch (err) {
console.log(err);
res.status(500).send(`Server error`);
}
});
Я знаю, что могу деструктурировать значения req.body
и отправить их в настраиваемый объект вручную, но в этой модели слишком много значений, чтобы это было жизнеспособным.