【问题标题】:User.findOneAndUpdate not returning the updated user objectUser.findOneAndUpdate 不返回更新的用户对象
【发布时间】:2020-05-10 18:08:55
【问题描述】:

这是我的 updateUser 控制器功能。即使在 app.js 的 MongoDB 连接中设置了 {new: true}{useFindAndModify: false} 之后,它也不会返回更新的对象。我只得到相同的对象,其 id 我正在通过参数。

       updateUser: (req, res) => {
        console.log(req.params, "update user")
        User.findOneAndUpdate(req.params.id, { new: true }, (err, updatedUser) => {
            console.log(updatedUser)
            if (err) {
                return res.status(500).json({ error: "server error" })
            } else if (!updatedUser) {
                return res.status(400).json({ error: "No user found" })
            } else if (updatedUser) {
                return res.status(200).json({ user: updatedUser })
            }
        })
    }

【问题讨论】:

    标签: node.js express mongoose postman


    【解决方案1】:

    您正在按 id 查找文档,您正在使用带有 true 的新集合来获取更新的文档,但是您在哪里更新文档。 您需要传递更新对象来更新数据 文档链接:https://mongoosejs.com/docs/tutorials/findoneandupdate.html

    【讨论】:

    • 我正在通过邮递员更新。你是说在这个控制器中传递整个更新的对象吗?
    • 好吧,那么问题出在您的更新方法上。我猜这没有按预期工作。
    • 它只是返回同一个对象。没有别的了。
    • 你是对的。我需要在这里传递更新的对象。很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    相关资源
    最近更新 更多