我需要(在MongoDB的C#驱动程序中)获取连接到Mongo-s
实例的所有配置服务器的列表。或者,如果失败了,我会选择一种方法来获取所有服务器,并逐一介绍它们,告诉哪些是configsvr,哪些是其他的。我在考虑getShardMap
命令,但我仍然不知道如何查看服务器(以编程方式)并确定它是否为configsvr
。
感谢。
答案 0 :(得分:4)
mongos> db.runCommand("getShardMap")
{
"map" : {
"node2:27021" : "node2:27021",
"node3:27021" : "node3:27021",
"node4:27021" : "node4:27021",
"config" : "node2:27019,node3:27019,node4:27019",
"shard0000" : "node2:27021",
"shard0001" : "node3:27021",
"shard0002" : "node4:27021"
},
"ok" : 1
}
getShardMap命令提供传递给mongos服务器的配置字符串。您可以解析字符串以获取配置服务器列表。
答案 1 :(得分:0)
我能想到获取此信息的唯一方法是在mongos上运行getCmdLineOpts命令并查看它传递的--configdb参数。我不确定你是如何在C#驱动程序中运行管理命令的,但我想它是这样的:
db.RunCommand("getCmdLineOpts");