我有一个调用MongoDB命令并生成BSON输出的shell命令。然后我想使用jq解析该输出,因此我需要使用jq的tojson将BSON转换为JSON。
echo "db._adminCommand({replSetGetStatus : 1})" | /path/to/mongo
我该如何实现tojson,是不是只需要像这样简单地做:
echo "db._adminCommand({replSetGetStatus : 1})" | /path/to/mongo | jq '[.[]|tojson]'
我还没有在我的服务器上安装jq,因为我必须先证明它的有效性,然后才能发布。
当我在在线演示中尝试使用 .[]|tojson 时,它无法工作,但我不确定这是否是演示的限制?
编辑
所以我设法在运行mongodb的测试服务器上安装了"jq"并尝试了这个:
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 Zwinck