簡體   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