У меня есть команда оболочки, которая вызывает команду MongoDB и выдает вывод BSON. Затем я хочу проанализировать этот вывод с помощью jq, поэтому мне нужно преобразовать BSON в JSON, используя jj tojson.Bash - конвертировать MONGODB BSON в JSON
echo "db._adminCommand({replSetGetStatus : 1})" | /path/to/mongo
Как реализовать tojson это так просто, как делают это слово:
echo "db._adminCommand({replSetGetStatus : 1})" | /path/to/mongo | jq '[.[]|tojson]'
Я не поставить JQ на моем сервере еще, как я должен доказать, что он работает, прежде чем я могу получить его выпущенный.
Когда я пытаюсь. [] | Tojson в онлайн-демонстрации не работает, но я не был уверен, что это было демо-ограничение?
EDIT
Так мне удалось получить "JQ" на тестовом сервере работает MongoDB и попытался это:
echo "db._adminCommand({replSetGetStatus : 1})" | /path/to/mongo | ./jq '.members[] | {Server: .name, State: .stateStr}'
ошибка я получил, было это:
parse error: Invalid numeric literal at line 1, column 8
Таким образом, казалось бы, что «jq» не может анализировать данные из replSetGetStatus.
В то же время, когда я сижу, царапая голову, ожидая, когда появятся группы по борьбе с изменениями, если у кого-то есть идеи, они будут очень признательны.
Я видел, что некоторые программы плавающая вокруг называется 'b2json' которые преобразовывают BSON в формате JSON. –
Спасибо, John, я действительно хотел использовать «jq», так как у меня больше шансов получить это управление изменениями и на сервере. Кроме того, у него много полезных функций. – Chris
О, я вижу. Ну, вы должны установить «jq» на тестовой машине или на вашем рабочем столе в виртуальной машине (что это такое, Change Management не любит виртуальные машины ?!). У вас должна быть некоторая среда dev/test, которая не блокируется. Если нет, время для новой работы! –