首页 > 解决方案 > 为什么 findOneAndUpdate() 不更新文档?

问题描述

我是使用 mongoose 的新手,我在更新文档时遇到了问题。我的代码找到了文档,但没有更新属性并最终删除了文档。我究竟做错了什么?

router.put("/hostGame/hostConfirm", (req, res, next) => {
    GameModel.findOneAndUpdate(req.body.filter, req.body.update)
    .then( game => {
        console.log(game);
    })
    .catch(err => {
        console.log(err)
        res.send(err)
    })
})

标签: node.jsmongodbmongoose

解决方案


默认情况下,原始文档是从findOneAndUpdate返回的。您需要启用该new选项以获取更新的文档:

GameModel.findOneAndUpdate(req.body.filter, req.body.update, {new: true})

推荐阅读