2

I've used pymongo to connect to mongo replica set and print the status of replica set using json dump. I want to parse this output and display "name" and "stateStr" into a list or array for the user to be able to pick a particular host.Here is my json dump output:

{

{
  "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"
  }
}
monicak
  • 45
  • 4
  • Sounds you know exactly what you want to do. Finding out how to parse JSON in Python should not be too hard. – Tomalak Oct 07 '16 at 15:49

1 Answers1

0

Please try below Javascript code. It worked for me.

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);
}
Robin Varghese
  • 1,158
  • 10
  • 22