Я относительно новичок в Mongoose, и у меня возникли проблемы с работой doc.save() при обновлении поддокумента.Обновление поддокументов с помощью doc.save Mongoose()
В настоящее время у меня есть этот код:
Marksheet.findById(req.body.id, function(err, marksheet) {
if (err) return res.send(err);
marksheet.marks[0] = req.body.mark;
marksheet.save(function(err){
if (err) return res.send(err);
res.json(marksheet);
});
Когда я запускаю это через Node.js я получаю эту ошибку:
TypeError: doc.save is not a function
Если я пытаюсь изменить только некоторые из корневых значений, I не имеют проблем с запуском markheet.save(). Кроме того, если я использую findByIdAndUpdate(), то, похоже, он работает нормально.
Marksheet.findByIdAndUpdate(marksheet._id, marksheet, {new: true}, function(err, newMarksheet){
if (err) return res.send(err);
res.json(newMarksheet);
});
Мой вопрос почему поддокумент не хочет, чтобы сохранить и есть лучший способ для меня, чтобы запустить эту операцию обновления, а не заменять весь документ?
Это именно то, что я написал в моем вопросе, как мой текущий обходной путь. findOneAndUpdate - это то же самое, что и findByIdAndUpdate. Я спрашивал, есть ли способ использовать метод doc.save()? – StefanM
см. Обновленный ответ спасибо –