javascript - mongo 没有返回我更新的对象的 promise

标签 javascript mongodb es6-promise

谁能帮我理解为什么在更新完成后我的 promise 会从 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 doesn't return updated document了解更多详情

关于javascript - mongo 没有返回我更新的对象的 promise ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54844026/

相关文章:

javascript - 需要 javascript 中的函数来交换数组中的 2 个元素

node.js - Passport JS 本地策略不适用于 MongoDB

node.js - 如何在事件处理程序中实现异步/等待?

javascript - 如何从 jQuery 中的段落中删除不需要的元素

javascript - 如何从json获取动态路径?

javascript - 在拼图中使用我们自己的图像

mongodb - 在 Scala 中从 mongoDB 读取

mongodb - 如果数组包含匹配值,则查找 mgo 文档

javascript - 从构造函数返回 ES6 promise - 绑定(bind) this

javascript - 用错误修饰 JavaScript Promise