Может ли кто-нибудь помочь мне понять, почему после завершения обновления мое обещание возвращает исходный (предварительно обновленный) объект из Mongo?
Чтобы было ясно, что Mongo обновляется, я вижу, что когда я обращаюсь к базе данных напрямую (shell), но кажется, что обновление вступает в силу после того, как dbModel возвращается; что не имеет смысла.
updateOneEvent: function (req, res) {
db.Event.findOneAndUpdate({
_id: req.params.eventId,
user: req.session.user._id
}, req.body)
.then(dbModel => res.json(dbModel))
.catch(err => res.status(422).json(err));
}
Передайте {returnNewDocument: true}
в настройках, и он вернет новый документ, а не вернет документ до его обновления. https://docs.mongodb.com/manual/reference/method/db.collection.findOneAndUpdate/
См. Mongoose: findOneAndUpdate не возвращает обновленный документ для более подробной информации.