繁体   English   中英

从replSetGetStatus解析主要和辅助主机的json输出

[英]parse json output for primary and secondary hosts from replSetGetStatus

我已经使用pymongo连接到mongo副本集并使用json dump打印副本集的状态。 我想解析此输出并将“ name”和“ stateStr”显示到列表或数组中,以使用户能够选择特定主机。这是我的json转储输出:

{

 { "replSetGetStatus": { "date": "2016-10-07T14:21:25", "members": [ { "_id": 0, "health": 1.0, "name": "xxxxxxxxxxx:27017", "optime": null, "optimeDate": "2016-10-07T13:50:11", "self": true, "state": 1, "stateStr": "PRIMARY", "uptime": 32521 }, { "_id": 1, "health": 1.0, "lastHeartbeat": "2016-10-07T14:21:24", "lastHeartbeatRecv": "2016-10-07T14:21:24", "name": "xxxxxxxxxxxx:27017", "optime": null, "optimeDate": "2016-10-07T13:50:11", "pingMs": 0, "state": 2, "stateStr": "SECONDARY", "syncingTo": "xxxxxxxxxxxx:27017", "uptime": 27297 }, { "_id": 2, "health": 1.0, "lastHeartbeat": "2016-10-07T14:21:24", "lastHeartbeatRecv": "2016-10-07T14:21:24", "name": "xxxxxxxxxxxxx:27020", "pingMs": 0, "state": 7, "stateStr": "ARBITER", "uptime": 32517 } ], "myState": 1, "ok": 1.0, "set": "replica1" } } 

请尝试以下Javascript代码。 它为我工作。

use admin;
var result = rs.status();
var length = result.members.length;
for (var i=0;i<length;i++){
        print ("Server Name-" +result.members[i].name);
        print ("Server State-" +result.members[i].stateStr);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM