我正在使用猫鼬 findOneAndUpdate
但仍然出现错误,
弃用警告:collection.findAndModify 已弃用。请改用 findOneAndUpdate、findOneAndReplace 或 findOneAndDelete。
但我什至没有使用 findAndModify
,为什么它将我的查询转换为 findAndModify
?
原文由 Sudhanshu Gaur 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在使用猫鼬 findOneAndUpdate
但仍然出现错误,
弃用警告:collection.findAndModify 已弃用。请改用 findOneAndUpdate、findOneAndReplace 或 findOneAndDelete。
但我什至没有使用 findAndModify
,为什么它将我的查询转换为 findAndModify
?
原文由 Sudhanshu Gaur 发布,翻译遵循 CC BY-SA 4.0 许可协议
像这样全局更改猫鼬配置:
mongoose.set('useFindAndModify', false);
或者像这样在查询字符串中传递选项:
Person.findOneAndUpdate({_id: id}, {$set: body}, {new: true, useFindAndModify: false}).then(..
您还可以管理其他猫鼬弃用警告作为提及 文档
mongoose.set('useNewUrlParser', true);
mongoose.set('useCreateIndex', true);
而已。
原文由 Ikram - Ud - Daula 发布,翻译遵循 CC BY-SA 4.0 许可协议
5 回答4.8k 阅读✓ 已解决
4 回答2.5k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
5 回答1.9k 阅读
2 回答1.3k 阅读✓ 已解决
3 回答2k 阅读
1 回答3.2k 阅读
您需要将查询中的选项
useFindAndModify
设置为false
,如 文档 中所述。(搜索关键字 目前支持的选项是)
如果你看到 mongoose 的定义文件,其中提到它调用 findAndModify 更新命令。
最近在 mongoose 文档( 单击此处)中更新了提到的这些弃用:
您可以通过三种或更多方式避免使用
FindAndModify
: