我有一个shell命令,该命令调用MongoDB命令并产生BSON输出。然后,我想用jq解析该输出,因此我需要使用jq的tojson将BSON转换为JSON。
echo "db._adminCommand({replSetGetStatus : 1})" | /path/to/mongo
Run Code Online (Sandbox Code Playgroud)
我如何实现tojson就是这么简单:
echo "db._adminCommand({replSetGetStatus : 1})" | /path/to/mongo | jq '[.[]|tojson]'
Run Code Online (Sandbox Code Playgroud)
我还没有将jq放到服务器上,因为我必须证明它能在发布前起作用。
当我在在线演示中尝试。[] | tojson时,它不起作用,但是我不确定这是否是演示限制吗?
编辑
因此,我设法在运行mongodb的测试服务器上获得了“ jq”并尝试了以下操作:
echo "db._adminCommand({replSetGetStatus : 1})" | /path/to/mongo | ./jq '.members[] | {Server: .name, State: .stateStr}'
Run Code Online (Sandbox Code Playgroud)
我收到的错误是这样的:
parse error: Invalid numeric literal at line 1, column 8
Run Code Online (Sandbox Code Playgroud)
因此,似乎“ jq”无法解析replSetGetStatus中的数据。
同时,当我坐着挠头,等待变更管理死亡小队露面时,如果有人有任何想法,将不胜感激。
小智 5
您可以使用mongodb随附的bsondump实用程序:
bsondump yourfile.bson | head
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3279 次 |
| 最近记录: |