我正在使用猫鼬版本 5.2.13 ,我认为是最新版本。但是,当我尝试执行 .findOneAndUpdate()查询时,Mongo会引发弃用警告:
DeprecationWarning:不建议使用collection.findAndModify。采用 而不是findOneAndUpdate,findOneAndReplace或findOneAndDelete。
在猫鼬的未来版本中应该解决此已知行为吗?还是我应该对此做些什么?我正在运行的查询是:
output2 = await dbUser.findOneAndUpdate(
{ _id: args.authorid },
{ $push: { posts: newpost2 } },
);
在MongoDB mongoose collection.find options Deprecation Warning中提供了可能的建议的情况下,我不太愿意降级我的软件包。
答案 0 :(得分:0)
参考:https://mongoosejs.com/docs/deprecations.html
添加参数: useFindAndModify:false
例如,代码
mongoose.connect(
MONGODB_URL, {
useFindAndModify: false
},
(err, db) => {
if (err) throw err;
console.log(`MongoDB connected on port ${MONGODB_PORT}`);
}
);
答案 1 :(得分:0)
我认为要避免此警告,您必须将 useFindAndModify: false
添加到 Mongoose documentation
如下:
<块引用>mongoose.connect(uri, { useFindAndModify: false });
此外,您可以将其升级到(v5.12.15);这是最新版本;除了使用前面提到的连接选项