gpt4 book ai didi

c# - MongoDb 连接到副本集主要问题 C#

转载 作者:可可西里 更新时间:2023-11-01 09:58:57 24 4
gpt4 key购买 nike

如何取回主数据库的名称?假设 database3 是主要的

谢谢

var connString = "mongodb://database1,database2,database3/?replicaSet=repl";
var client = new MongoClient(connString);
var server = client.GetServer().Instances.FirstOrDefault(server => server.IsPrimary);
var address = server.Address;

最佳答案

查看了 MongoDB 驱动程序的源代码后,没有直接的方法可以从驱动程序本身获取主服务器的名称。但是,您可以通过使用 RunCommand 执行 {isMaster:1} 来查询 MOngoDB 中的服务器名称。然后,您可以从返回的 JSON 文档中解析主服务器。无论您是连接到主服务器还是辅助服务器,这种方法都有效。

var mongoClient = new MongoClient(clientSettings);
var testDB = mongoClient.GetDatabase("test");
var cmd = new BsonDocument("isMaster", "1");
var result = testDB.RunCommand<BsonDocument>(cmd);
var primaryServer = result.Where(x => x.Name == "primary").FirstOrDefault().Value.ToString();

关于c# - MongoDb 连接到副本集主要问题 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34336492/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com