MongoDB 弃用警告

Posted

技术标签:

【中文标题】MongoDB 弃用警告【英文标题】:MongoDB Deprecation Warning 【发布时间】: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)吗? 【参考方案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);

【讨论】:

以上是关于MongoDB 弃用警告的主要内容,如果未能解决你的问题,请参考以下文章

使用 winston-mongodb 后收到警告 [当前服务器发现和监控引擎已弃用]

kubectl (node:7) [MONGODB DRIVER] 警告:当前的服务器发现和监控引擎已被弃用,将在未来版本中删除

mongodb-nodejs-driver,DeprecationWarning:collection.count 已弃用

(节点:71307)[DEP0079] 弃用警告

UnhandledPromiseRejectionWarning:|弃用警告:|猫鼬5

惨遭红帽弃用,MongoDB要凉凉了吗?