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 已弃用