Mongoose 警告:DeprecationWarning:当前的服务器发现和监控引擎已弃用?

Posted

技术标签:

【中文标题】Mongoose 警告:DeprecationWarning:当前的服务器发现和监控引擎已弃用?【英文标题】:Mongoose warns: DeprecationWarning: current Server Discovery and Monitoring engine is deprecated? 【发布时间】:2020-02-22 03:10:37 【问题描述】:

启动我的应用程序时,我收到以下警告:

(node:11800) DeprecationWarning: current Server Discovery and
Monitoring engine is deprecated, and will be removed in a future
version. To use the new Server Discover and Monitoring engine, pass
option  useUnifiedTopology: true  to the MongoClient constructor.

然而我们正在指定这个值:

connection = await mongoose.connect(dbUrl, 
  keepAlive: true,
  useNewUrlParser: true,
  useCreateIndex: true,
  useFindAndModify: false,
  useUnifiedTopology: true
);

dbUrl 的值为:mongodb://localhost:27017/test-app

环境:

mongo v4.0.13 on macOS nodejs v10.15.3 package mongodb@3.3.2 package mongoose@5.7.0

关于如何处理警告的任何想法?

【问题讨论】:

我认为这是在这里讨论过的:***.com/questions/57895175/… 除了上面提到的链接,它拥有一切。您可以尝试通过mongoose.set('useUnifiedTopology', true); 明确设置 原来问题与我们测试中的一段代码有关,该代码直接使用 mongodb 包来删除数据库。我们需要确保参数在那里传递。 【参考方案1】:

这是由于公共 IP 地址的更改而发生的 对我有用的唯一方法是在 mongodb atlas 中更改我的公共 IP 地址 转到集群>网络访问>单击编辑 然后用你当前的公共IP地址更改IP地址

检查你的IP地址在谷歌上输入我的公共IP地址并点击第一个链接

【讨论】:

【参考方案2】:

这对我来说很好,没有更多错误。

试试这个,

mongoose
    .connect(db,
        useUnifiedTopology: true,
        useNewUrlParser: true,
        )
    .then(() => console.log('MongoDB Connected...'))
    .catch(err => console.log(err));

【讨论】:

以上是关于Mongoose 警告:DeprecationWarning:当前的服务器发现和监控引擎已弃用?的主要内容,如果未能解决你的问题,请参考以下文章

Mongoose 警告:DeprecationWarning:当前的服务器发现和监控引擎已弃用?

Typescript Mongoose 在 VS Code 中获取 Schema 字段的 IntelliSense 或警告

Mongoose 报错代码 (node:10256)(node:13604)(node:13604) DeprecationWarning: Mongoose: findOneAndUpdate()

UnhandledPromiseRejectionWarning:|弃用警告:|猫鼬5

使用Async / await和mongoose

MongoDB 弃用警告