【问题标题】:Bash - Convert MONGODB BSON to JSONBash - 将 MONGODB BSON 转换为 JSON
【发布时间】:2015-11-20 09:59:43
【问题描述】:

我有一个调用 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。
  • 谢谢约翰,我真的很想使用“jq”,因为我有更多机会获得过去的变更管理并进入服务器。此外,它还有很多有用的功能。
  • 哦,我明白了。好吧,您应该在测试机器上或在 VM 中的桌面上安装“jq”(那是什么,变更管理不喜欢 VM?!)。您必须有一些没有被锁定的开发/测试环境。如果没有,是时候换一份新工作了!
  • 然后是新工作 ;-) 我需要一台运行 Mongodb 的测试机器,构建 VM 需要时间。
  • 然后在 Amazon 上启动一个虚拟机...只需要 5 分钟就可以了

标签: json mongodb bson


【解决方案1】:

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

bsondump yourfile.bson | head

【讨论】:

  • 将 BSON 转换为 JSON:bsondump collection.bson --outFile=collection.json
猜你喜欢
  • 2019-05-06
  • 1970-01-01
  • 1970-01-01
  • 2021-11-26
  • 1970-01-01
  • 2014-08-16
  • 2014-11-03
  • 2015-10-01
  • 2022-10-19
相关资源
最近更新 更多