使用Mongoose时的MongoDB弃用警告

时间:2018-09-17 06:37:37

标签: mongodb mongoose

我正在使用猫鼬版本 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中提供了可能的建议的情况下,我不太愿意降级我的软件包。

2 个答案:

答案 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);这是最新版本;除了使用前面提到的连接选项