MongoDB 명령을 호출하고 BSON 출력을 생성하는 쉘 명령이 있습니다. JSON을 jq의 tojson을 사용하여 JSON으로 변환해야하므로 jq를 사용하여 출력을 파싱하고 싶습니다.Bash - MONGODB BSON을 JSON으로 변환
echo "db._adminCommand({replSetGetStatus : 1})" | /path/to/mongo | jq '[.[]|tojson]'
나는 그것을 얻을 수 전에 작동 증명해야로서 나는 아직 내 서버에 JQ를 넣어되지 않은 : 나는 tojson을 구현하려면 어떻게
echo "db._adminCommand({replSetGetStatus : 1})" | /path/to/mongo
이 말을하는 것처럼 간단합니다 풀어 놓았다.
온라인 데모에서 [] | tojson을 시도하면 작동하지 않지만 이것이 데모 제한 사항인지 확실하지 않습니다. 편집
그래서 나는 테스트 서버를 실행하여 MongoDB의 "JQ를"그럭저럭이 시도 :
parse error: Invalid numeric literal at line 1, column 8
:
echo "db._adminCommand({replSetGetStatus : 1})" | /path/to/mongo | ./jq '.members[] | {Server: .name, State: .stateStr}'
내가받은 오류이 있었다 따라서 "jq"는 replSetGetStatus에서 데이터를 구문 분석 할 수 없다는 것을 알 수 있습니다.
변경 관리 사망 분대가 나타나기를 기다리는 동안 누군가가 몇 가지 아이디어를 가지고 있으면 크게 감사 할 것입니다.
나는 일부 프로그램이 주위 JSON에 BSON 변환'b2json'되는라는 부동 보았다. –
존 감사합니다. 저는 과거의 변경 관리를 받고 서버를 사용할 기회가 많아서 "jq"를 사용하고 싶었습니다. 게다가 유용한 기능이 많이 있습니다. – Chris
아, 알겠습니다. 자, 테스트 머신이나 VM의 데스크탑에 "jq"를 설치해야합니다 (변경 관리는 VM을 좋아하지 않습니까?). 잠겨 있지 않은 dev/test 환경이 있어야합니다. 그렇지 않다면 새로운 직업을 구하십시오! –