Bash - 将MONGODB BSON转换为JSON

时间:2014-10-16 12:08:24

标签: json mongodb bson

我有一个调用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中的数据。

与此同时,当我坐下来挠头,等待变革管理死亡小组出现时,如果有人有一些想法,他们将不胜感激。

1 个答案:

答案 0 :(得分:4)

您可以使用mongodb附带的bsondump实用程序:

Enum.IsDefined