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

如何在Spring Boot中通过MongoTemplate获取Mongo副本集成员状态?

解决Spring Boot中MongoTemplate执行replSetGetStatus的未授权问题

错误提示已经明确说明:replSetGetStatus命令必须在admin数据库上执行,而你当前代码里mongoTemplate.getDb()获取的是配置文件中指定的业务数据库,所以触发了未授权错误。

直接切换到admin数据库执行命令即可,代码示例:

// 从MongoTemplate获取MongoClient实例
MongoClient mongoClient = mongoTemplate.getMongoClient();
// 切换至admin数据库
MongoDatabase adminDb = mongoClient.getDatabase("admin");
// 构造并执行replSetGetStatus命令
Bson replSetStatusCmd = new BasicDBObject("replSetGetStatus", 1);
Document statusResult = adminDb.runCommand(replSetStatusCmd);
// 按需处理结果,比如转为字符串
String statusStr = statusResult.toString();

额外注意:确保你的MongoDB账号拥有执行该命令的权限,通常需要分配clusterMonitor角色(该角色包含查看副本集状态的权限)。

内容的提问来源于stack exchange,提问作者Kaushik Mahadevan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 13:34:51