服务器发现和监控引擎已弃用

2024-05-29

我在 Node.js 应用程序中使用 Mongoose,这是我的配置:

mongoose.connect(process.env.MONGO_URI, {
   useNewUrlParser: true,
   useUnifiedTopology: true,
   useCreateIndex: true,
   useFindAndModify: false
}).then(()=>{
    console.log(`connection to database established`)
}).catch(err=>{
    console.log(`db error ${err.message}`);
    process.exit(-1)
})

但在控制台中它仍然给我警告:

DeprecationWarning:当前的服务器发现和监控引擎已被弃用,并将在未来版本中删除。要使用新的服务器发现和监控引擎,请将选项 { useUnifiedTopology: true } 传递给 MongoClient 构造函数。

问题是什么?我没有使用useUnifiedTopology以前但现在它显示在控制台中。我将其添加到配置中,但它仍然给我这个警告,为什么?我什至不使用MongoClient.

Edit

正如 Felipe Plets 所回答的那样,Mongoose 存在一个问题,他们在以后的版本中修复了这个错误。所以你可以通过更新 mongoose 版本来解决问题。


Update

Mongoose 5.7.1 已发布,似乎解决了该问题,因此设置useUnifiedTopology选项按预期工作。

mongoose.connect(mongoConnectionString, {useNewUrlParser: true, useUnifiedTopology: true});

原答案

我面临着同样的问题,并决定深入研究 Mongoose 代码:

似乎是 Mongoose 5.7 版本中添加的一个选项,但尚未有详细记录。我什至找不到图书馆历史中提到的它https://github.com/Automattic/mongoose/blob/master/History.md https://github.com/Automattic/mongoose/blob/master/History.md

根据代码中的注释:

  • @param {Boolean} [options.useUnifiedTopology=false] 默认为 False。设置true选择加入 MongoDB 驱动程序的副本集和分片集群监控引擎。

项目 GitHub 上也有一个关于此错误的问题:https://github.com/Automattic/mongoose/issues/8156 https://github.com/Automattic/mongoose/issues/8156

就我而言,我不在副本集或分片集群中使用 Mongoose,尽管该选项应该为 false。但如果为 false,它会抱怨设置应该为 true。一旦是真的,它仍然不起作用,可能是因为我的数据库没有在副本集或分片集群上运行。

我已经降级到 5.6.13,我的项目又恢复正常工作了。因此,我现在看到的唯一选择是降级并等待修复程序更新为新版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

服务器发现和监控引擎已弃用 的相关文章

随机推荐

  • gis计算点和多边形/边界之间的距离

    我想使用 python 计算一个点到一个国家边界之间的距离shapely 它应该工作得很好 point distance poly 例如在这里展示查找多边形形状上最近点的坐标 https stackoverflow com question
  • Android:通过查找带有标签而不是 ID 的容器来添加片段

    我正在使用 for 循环创建片段的多个实例 在每个片段中 我需要添加另一组子片段 为此 我需要找到正确的容器 如果我使用容器的 ID 所有子片段都会添加到第一个父片段 而不是它们自己的父片段 在我的主要片段中 for ParentFragm
  • 非 www .htaccess 重定向 - 忽略其他子域

    我有一个 非 www 的 htaccess 重定向 如下所示 RewriteEngine on RewriteCond HTTP HOST www RewriteRule http www HTTP HOST 1 R 301 L 这是工作
  • 将变量从调用它的父页面传递给 Vue 组件

    我有一个简单的表格 显示了我的所有数据 主文件 php table class table table bordered table hover thead tr th Job Name th th Job Description th t
  • 线程安全的有限大小队列,不使用锁

    我正在尝试编写一个主题队列 但遇到死锁和其他多线程问题 我想用Interlocked CompareExchange避免lock用法 但这段代码并没有按预期工作 它只是擦除整个队列 我在这里做错了什么 public class FixedS
  • JbdcTemplate - 带有动态 SQL 查询的PreparedStatements

    I know jdbcTemplate可以用来创建PreparedStatements如果你这样设置 i e private JdbcTemplate jdbcTemplate String sqlQuery Select from tab
  • html 表:thead 与 th

    它看起来像 根据示例这一页 http www w3 org TR html4 struct tables html无论如何 如果您使用THEAD 则不需要使用TH 真的吗 如果是这样 THEAD 与 TH 相比有何优点 缺点 The the
  • 从 Web 打印“原始文本”(ZPL)

    我们有很多旧的 ZPL 标签 我们希望能够从网络客户端打印它们 打印机连接到客户端而不是服务器 我们有一些想法 从 Silverlight 打印 不可行 似乎无法在不调用 COM 对象的情况下从 NET 打印 原始 到 Zebra 而这在普
  • 获取给定日期的周数

    例子 DD MM YYYY 1 1 2009 should give 1 31 1 2009 should give 5 1 2 2009 should also give 5 Format 1 2 2009 ww 回报6 那么 怎样才能得
  • SendGrid事件通知认证

    我已经为 sendgrid 设置了一个端点来发送事件通知 但是 服务器设置了基本身份验证 并且事件不会通过 因为它们未经身份验证 如何通过 SendGrid 或将 SendGrid 列入白名单来验证这些事件 Webhook 设置 HTTP
  • 为什么 SSRS 报表从 SQL Server Reporting Services 运行时生成的数据与使用“预览”选项卡运行时生成的数据不同?

    我有一个运行我想要的数据的报表 从 预览 选项卡 即 或者在 VS 2010 中使用 F5 运行时 但是当我将报表 rdl 文件 上传到 SQL Server Reporting Services 并运行更新后的报表时从那里报告 它仍然显示
  • AWS CloudWatchLog 限制

    我正在尝试找到集中式解决方案来将我的应用程序日志记录从数据库 RDS 中移出 我本想使用 CloudWatchLog 但注意到 PutLogEvents 请求有限制 PutLogEvents 请求的最大速率为每秒 5 个请求 每个日志流 即
  • 查找和替换正则表达式问题

    感谢这里对我其他问题的所有大力帮助 我开始掌握正则表达式 但我仍然对这个一无所知 我的代码是 StreamReader reader new StreamReader fDialog FileName ToString string con
  • iphone相当于android打开其他应用程序的意图

    是否有像 iphone 中可用的 android 意图功能 Android 使用意图从调用应用程序打开其他应用程序 以使用其他应用程序已实现的功能 我在某处读到 iphone 有 url 方案 但找不到更多信息 thanks 尝试查看以下答
  • 尝试设置 requestPointerLock() 时似乎出现问题

    我的代码似乎有问题 但我不知道是什么 我正在尝试调用pointerlockchange api 来禁用指针并使用鼠标作为fps 控制器 问题是总是指针锁错误被触发 我得到一个设置指针锁定时出错 信息 内部调用了该函数 文档 准备好 这是代码
  • LinearLayout onclick 在 TranslateAnimation 后不翻译

    这是我的问题 我有一个 LinearLayout 它的 clickable true 为 onTouch 事件 以便当 LinearLayout 被触摸时 它会滑动 屏幕上 这是可行的 但是当 onTouch 事件发生后 从新位置解雇没有任
  • 如何获取已退出的 docker 容器的数字退出状态?

    当容器退出时 docker ps a显示其退出代码 滚动 docker run ubuntu bash c exit 1 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c2c76
  • R:使用管道将单个参数传递到函数中的多个位置

    我试图专门使用管道来重写以下代码 使用babynames包中的babynames数据 library babynames library dplyr myDF lt babynames gt group by year gt summari
  • Wordnet sqlite 同义词和示例

    我正在尝试获取给定 wordid 的同义词和示例列表 经过大量的试验和错误 我可以获得所有同义词集的样本 但不是实际的同义词 这是我的查询 它给出了以下结果 select senses wordid senses synsetid sens
  • 服务器发现和监控引擎已弃用

    我在 Node js 应用程序中使用 Mongoose 这是我的配置 mongoose connect process env MONGO URI useNewUrlParser true useUnifiedTopology true u