Анализировать вывод json для основного и дополнительного хостов из replSetGetStatus

Я использовал pymongo для подключения к набору реплик mongo и печати состояния набора реплик с помощью json dump. Я хочу проанализировать эти выходные данные и отобразить "name" и "stateStr" в список или массив, чтобы пользователь мог выбрать конкретный хост. Вот мой вывод json dump:

{

{
  "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"
  }
}

1 ответ

Пожалуйста, попробуйте ниже код 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);
}
Другие вопросы по тегам