c++ - 是否可以使用旧版 C++ API(版本 1.1.2)连接到 MongoDB Atlas?
问题描述
我正在尝试使用旧版(不再受支持) C++ API 1.1.2连接到 MongoDB Atlas 中的 MongoDB 4.2.3 ,并看到如下错误:
组件 [NETWORK],上下文 []:连接到服务器 cluster0-shard-00-02-zbydr.mongodb.net:27017 (52.48.177.64)
组件 [NETWORK],上下文 []:未检测到集合 Cluster0-shard-0 的主节点
组件 [NETWORK],上下文 []:设置 Cluster0-shard-0 的所有节点都已关闭。连续 33 次检查都发生了这种情况。轮询将在 -3 次失败检查后停止
连接失败 - 连接到副本集失败 Cluster0-shard-0/cluster0-shard-00-00-zbydr.mongodb.net:27017,cluster0-shard-00-01-zbydr.mongodb.net:27017,cluster0-shard- 00-02-zbydr.mongodb.net:27017
我可以毫无问题地通过 shell 和 Node.js 进行连接 - 所以问题要么是我的连接字符串格式错误,要么只是旧版 C++ API 无法连接到 MongoDB 4.2 / Atlas。我正在使用以下连接字符串:
mongodb://username:password@cluster0-shard-00-00-zbydr.mongodb.net:27017,cluster0-shard-00-01-zbydr.mongodb.net:27017,cluster0-shard-00-02-zbydr.mongodb.net:27017/database?replicaSet=Cluster0-shard-0&authSource=admin
我得出的结论是旧版 C++ API 无法连接到 MongoDB 4.2集群是否正确?(我已经测试了直接连接到 MongoDB 4.2 的单个实例,这似乎工作正常。)也许 Atlas 本身需要仅由较新的 API 支持的功能?
解决方案
推荐阅读
- postgresql - 默认用户 Postgres 数据库
- azure - 将电子邮件内容传递到 Azure Function App
- python - Django 模型 - 如何避免孤儿相关对象?
- asp.net-core - Swagger 文档的路径为空
- elasticsearch - Elasticsearch ILM:设置别名取决于阶段(热、暖、冷)
- azure - 摆脱 Azure PowerShell 脚本中过时参数的任何方法(AzureRM 到 Az 更改)
- c++ - C++ win32 LoadImageW 返回 null
- powershell - Azure Active Directory B2C 角色模板显示名称不一致
- flutter - 触发器可从按钮颤动中滑动
- javascript - 为什么blinkLED说它正在超时