具体来说,我想将 mongodb find()
的结果打印到一个文件中。 JSON 对象太大,所以我无法使用 shell 窗口大小查看整个对象。
原文由 viper 发布,翻译遵循 CC BY-SA 4.0 许可协议
具体来说,我想将 mongodb find()
的结果打印到一个文件中。 JSON 对象太大,所以我无法使用 shell 窗口大小查看整个对象。
原文由 viper 发布,翻译遵循 CC BY-SA 4.0 许可协议
由于您是在终端上执行此操作并且只是想以一种理智的方式检查记录,因此您可以使用这样的技巧:
mongo | tee somefile
正常使用会话 - db.collection.find().pretty()
或任何你需要做的事情,忽略长输出,然后退出。您的会话记录将在文件中 tee
写入。
请注意,由于 mongo shell 需要交互式会话,输出可能包含转义序列和其他垃圾。 less
优雅地处理这些。
原文由 Falcon Momot 发布,翻译遵循 CC BY-SA 3.0 许可协议
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答897 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
shell 提供了一些不错但隐藏的功能,因为它是一个交互式环境。
当您通过 mongo commands.js 从 javascript 文件运行命令时,您不会得到完全相同的行为。
有两种解决方法。
(1) 伪造外壳并让它认为您处于交互模式
或者
(2) 使用 Javascript 将 a
find()
的结果翻译成可打印的 JSON其中 command.js 包含这个(或它的等价物):
这将漂亮地打印结果数组,包括
[ ]
- 如果你不想,你可以迭代数组和printjson()
每个元素。顺便说一句,如果您只运行一个 Javascript 语句,则不必将其放入文件中,而是可以使用: