【问题标题】:MongoDB Deprecation WarningMongoDB 弃用警告
【发布时间】:2021-07-12 03:06:26
【问题描述】:

因为我是 (MERN) 技术的超级新手。这个警告让我很烦恼一段时间 (弃用警告:Mongoose:findOneAndUpdate()findOneAndDelete() 不推荐使用未将 useFindAndModify 选项设置为 false 的情况。) 而且我也没有在这个功能上使用任何东西。

router.delete('/:id', (req, res)=> {
    Category.findByIdAndRemove(req.params.id).then(category => {
        if(category){
            return res.status(200).json({success: true, message: ' The category is deleted...'})
        } else {
            return res.status(404).json({success: false, message: " Category not found..."})
        }
    }).catch(err=>{
        return res.status(404).json({success: false, error: err})
    })
})

当我在邮递员上使用 Delete 方法时出现警告...

【问题讨论】:

  • 你试过findOneAndDelete(id)吗?

标签: javascript mongodb mongoose mern


【解决方案1】:

如果您使用 Model.findOneAndUpdate(),默认情况下您会看到以下弃用警告之一[...] 此选项影响以下模型和查询功能。 模型.findByIdAndDelete() 模型.findByIdAndRemove() 模型.findByIdAndUpdate() 模型.findOneAndDelete() 模型.findOneAndRemove() 模型.findOneAndUpdate() 查询.findOneAndDelete() 查询.findOneAndRemove() Query.findOneAndUpdate()

大多数时候,一些 mongoose 命令只是 MongoDB 命令的别名。

解决方案很简单,你必须将选项传递给猫鼬连接:

mongoose.connect(uri, { useFindAndModify: false });

或者设置后:

mongoose.set('useFindAndModify', false);

更多信息请访问:https://mongoosejs.com/docs/deprecations.html (findAndModify())

【讨论】:

  • 真的很感激^^,特别是告诉我把它放在哪里..
【解决方案2】:

只需添加mongoose.set('useFindAndModify', false);

【讨论】:

    猜你喜欢
    • 2019-01-25
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 2013-09-11
    • 2017-08-22
    相关资源
    最近更新 更多