登录
首页 >  Golang >  Go问答

为什么mongo连接字符串中没有连接选项的记录?

来源:stackoverflow

时间:2024-03-05 18:03:25 157浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《为什么mongo连接字符串中没有连接选项的记录?》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

问题是,即使我在连接字符串中仅定位副本集的一个节点,mongo-go-driver 始终希望发现并连接其他节点。

我在这里找到了一个解决方案,基本上说我应该在连接字符串中添加 connect 选项。

mongodb://主机:27017/authDb?connect=direct

我的问题是:这个做法有多好或多坏?为什么 mongo 没有记录,这个选项还有其他可用值吗?


解决方案


该选项仅适用于 Go 驱动程序。对于所有其他驱动程序,它无法识别,因此它没有记录为通用连接字符串选项。

Go 驱动程序的记录为 https://godoc.org/go.mongodb.org/mongo-driver/mongo#example-Connect--Direct

正如已接受的答案中所指出的,这记录在驱动程序文档中。现在讨论问题的另一部分。

一般来说,在副本集上下文中,您可能希望连接到拓扑,而不是直接连接到特定的副本集成员,但出于管理目的除外。复制旨在提供冗余,并且在发生故障转移时不建议直接连接到一个成员(即主成员)。

所有官方 MongoDB 驱动程序均遵循 MongoDB Specifications。对于直接连接,当前的要求是 server-discovery-and-monitoring.rst#general-requirements

它只指定它必须能够这样做,但没有指定如何这样做。 MongoDB Go 驱动程序并不是目前唯一支持 direct 选项方法的驱动程序,还有 .NET/C# 和 Ruby。

目前有一个 open PR 规范来统一行为。未来,所有驾驶员都将采用相同的方式建立直接连接。

今天关于《为什么mongo连接字符串中没有连接选项的记录?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>