2014-10-16 46 views
1

我有一個調用MongoDB命令並生成BSON輸出的shell命令。然後我想用jq解析輸出,所以我需要使用jq的tojson將BSON轉換爲JSON。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在線演示它不起作用,但我不確定這是否是演示限制?

編輯

所以我設法 「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的數據。同時,當我坐下來撓頭時,等待變革管理死亡小組出現,如果有人有一些想法,他們將不勝感激。

+0

我已經看到了一些程序漂浮稱爲'b2json'其將BSON到JSON。 – 2014-10-16 12:11:44

+0

謝謝約翰,我真的很想用「jq」,因爲我有更多的機會獲得這個過去的變更管理和服務器。另外它有很多有用的功能。 – Chris 2014-10-16 12:15:19

+0

哦,我明白了。那麼,你應該在一臺虛擬機上的測試機器或桌面上安裝「jq」(那是什麼,變更管理不喜歡虛擬機?!)。你必須有一些不太鎖定的開發/測試環境。如果不是的話,有時間做一份新工作! – 2014-10-16 12:17:39

回答

4

可以使用bsondump實用程序與MongoDB的未來:

bsondump yourfile.bson | head 
相關問題