我有一个调用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中的数据。
与此同时,当我坐下来挠头,等待变革管理死亡小组出现时,如果有人有一些想法,他们将不胜感激。
答案 0 :(得分:4)
您可以使用mongodb附带的bsondump实用程序:
Enum.IsDefined