c# - 我是否仍应在我的连接字符串中指定 Mongo 的副本集?

标签 c# mongodb mongodb-.net-driver

我正在使用带有 C# mongo 驱动程序的 Mongo(2.10)

我已经设法通过副本集连接到它:

var dbClient = new MongoClient(
"mongodb://aaa:123@m.com:27017,m1.com:37017,m2.com:47017/dbtest?safe=true&connect=replicaset");

然后I read that I don't需要指明connect=replicaset 因为我有多个主机。
这与建议的相反here .

所以现在我的连接是:

"mongodb://aaa:123@m.com:27017,m1.com:37017,m2.com:47017/dbtest?safe=true"

——它有效。

但后来我读到了docs (和 also here ),并且根本没有 connect=replicaset 开关。

只有:replicaset=name 开关。

问题:

声明使用副本集的连接字符串(与 MongoClient C# 一起使用)的正确方法是什么?

最佳答案

随着时间的推移,MongoDB C# 驱动程序发生了很多变化。您的决定需要基于您使用的版本。

First link 2014年为perl驱动编写

SO link写于 2015 年(当时使用 ver 2.2)。在任何 various versions documentation 中都没有引用 connect=replicaset

Documentation这是我推荐使用的,因为它是由 Mongo 编写的。按照这些文档中的说明,我已经能够使用 MongoClient 和 MongoClient 设置(如下示例)。

示例

你可以像上面那样把你的 mongodb 写成一个长字符串:

"mongodb://aaa:123@m.com:27017,m1.com:37017,m2.com:27017/dbtest?replicaSet=myRepl"

推荐

我建议使用 native C# 变量连接到副本集,而不是像上面那样使用连接字符串。 ConnectionMode 在设置中指定是 ReplicaSet 还是 Direct

    var mongoClientSettings = new MongoClientSettings()
    {
        ConnectionMode = ConnectionMode.ReplicaSet,
        Credential = MongoCredential.CreateCredential("admin", "user", "pass"),
        ReplicaSetName = "ReplicaSetName",
        Servers = new List<MongoServerAddress>() { new MongoServerAddress("host", 27017), new MongoServerAddress("host2", 27017) }.ToArray(),
        ApplicationName = "NameOfYourApplicatino",
    };

    MongoClient client = new MongoClient(mongoClientSettings);

由于客户端是线程安全的,您也可以将其用作全局变量。

关于c# - 我是否仍应在我的连接字符串中指定 Mongo 的副本集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59910786/

相关文章:

c# - 在哪里存储 C# 应用程序的 key

c# - 结束 for 循环的适当条件是什么?

node.js - 使用 mongoose 返回包含某个字段的所有文档

node.js - HasMany 关系在使用 mongodb 数据库的 Adonis 框架中不起作用

mongodb - WiredTiger MongoDB 引擎排序 : Is"natural order"equivalent to "ordered" with WiredTiger engine in mongodb?

c# - IBsonSerializationOptions 是否已从 MongoDB 的最新 C# 驱动程序中删除?

c# - 如何以编程方式测试 cookie?

c# - 变量在 C# Release x64 中不递增

mongodb - 更新 MongoDB 集合中所有文档中的元素

c# - 使用 MongoDB C# 驱动程序更新所有文档的字段数据类型