You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过mongosh命令行获取MongoDB集群的所有主机列表?

获取MongoDB分片集群的所有主机列表

可以通过mongosh结合集群元数据查询,获取分片、配置服务器及mongos节点的主机信息,具体方法如下:

1. 获取配置服务器副本集所有节点

连接到任意mongos实例后,切换至config数据库,查询副本集配置文档并提取节点主机:

use config
db.system.replset.findOne().members.forEach(member => print(member.host))

2. 获取所有注册过的mongos节点

MongoDB不会主动维护在线mongos的实时列表,但config数据库的mongos集合会记录所有曾连接过集群的mongos实例。执行以下命令获取:

use config
db.mongos.find({}, { _id: 0, host: 1 }).forEach(doc => print(doc.host))

注意:该集合可能包含已下线的mongos节点,需结合实际情况验证有效性。

3. 获取所有分片的副本集节点

从config数据库的shards集合提取分片的连接信息,解析出所有副本集节点:

use config
db.shards.find().forEach(shard => {
  // 拆分分片的连接字符串,提取主机列表
  const hostPart = shard.host.split('/')[1];
  hostPart.split(',').forEach(host => print(host));
})

或者也可以通过分片名称查询副本集状态来获取节点:

// 替换<分片副本集名称>为实际分片名,如"rs0"
sh._adminCommand({ replSetGetStatus: 1, forShard: "<分片副本集名称>" }).members.forEach(member => print(member.name))

内容的提问来源于stack exchange,提问作者himanshu singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 00:42:03