Монго не возвращает мой обновленный объект с обещанием

1

Может ли кто-нибудь помочь мне понять, почему после завершения обновления мое обещание возвращает исходный (предварительно обновленный) объект из 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));
}
Теги:
es6-promise

1 ответ

2
Лучший ответ

Передайте {returnNewDocument: true} в настройках, и он вернет новый документ, а не вернет документ до его обновления. https://docs.mongodb.com/manual/reference/method/db.collection.findOneAndUpdate/

См. Mongoose: findOneAndUpdate не возвращает обновленный документ для более подробной информации.

  • 0
    Спасибо Уиллис! Я полагаю, что по умолчанию имеет значение false, так как у меня будет доступ к обновленному объекту во внешнем интерфейсе.
  • 0
    Это имеет смысл, но это определенно одно из тех значений по умолчанию, которые запутывают каждого человека, который когда-либо делал что-то на монго

Ещё вопросы

Сообщество Overcoder
Наверх
Меню