Mongoose添加useNewUrlParser等选项后调用findByIdAndUpdate仍报警告怎么解决
Mongoose调用findByIdAndUpdate出现警告的解决方法
你遇到的该类警告是因为Mongoose 5.x版本中,findByIdAndUpdate、findOneAndUpdate、findOneAndDelete等修改查询类方法,底层默认调用MongoDB驱动的旧版弃用API,仅配置useNewUrlParser连接参数无法消除该警告,可通过以下步骤解决:
- 补充Mongoose连接配置项
在你的Mongoose初始化连接代码中,新增useFindAndModify: false参数即可,参考配置示例:
const mongoose = require('mongoose') mongoose.connect('mongodb://你的数据库地址/数据库名', { useNewUrlParser: true, useUnifiedTopology: true, // 新增以下配置项 useFindAndModify: false })
- 若你使用的是Mongoose 6.x及以上版本,该类参数已被默认内置无需额外配置,如果仍出现警告,可检查
findByIdAndUpdate的调用格式是否符合规范,参考正确调用示例:
// 参数依次为:目标文档ID、更新内容、配置项、回调函数 YourModel.findByIdAndUpdate( docId, { name: '新值' }, { new: true }, // 可选配置,开启后返回更新后的文档 (err, updatedDoc) => { // 业务处理逻辑 } )
内容的提问来源于stack exchange,提问作者Shahrukh Akib
相关产品推荐
相关产品推荐

