默认情况下,在MongoDB shell中打印漂亮

时间:2012-02-05 01:19:52

标签: mongodb command-line-interface mongo-shell

有没有办法告诉Mongo漂亮的打印输出?目前,所有内容都输出到一行,并且难以阅读,尤其是嵌套数组和文档。

8 个答案:

答案 0 :(得分:807)

注意:这是对问题原始版本的回答,该版本没有“默认”的要求

你可以问它很漂亮。

db.collection.find().pretty()

答案 1 :(得分:392)

您可以添加

DBQuery.prototype._prettyShell = true

$HOME/.mongorc.js中的文件,默认情况下全局启用精美打印。

答案 2 :(得分:46)

(注意:这是更新问题的答案)

您可以在CLI上执行此操作:

echo DBQuery.prototype._prettyShell = true >> ~/.mongorc.js

它总是能输出漂亮的结果。

答案 3 :(得分:16)

由于它基本上是一个javascript shell,你也可以使用toArray()

db.collection.find().toArray()

但是,这将打印集合的所有文档,而不是pretty(),这将允许您进行迭代。 请参阅:http://docs.mongodb.org/manual/reference/method/cursor.toArray/

答案 4 :(得分:16)

哦,我猜.pretty()等于:

db.collection.find().forEach(printjson);

答案 5 :(得分:7)

尝试一下Mongo-hacker(节点模块),它总是很漂亮。 https://github.com/TylerBrock/mongo-hacker

更多它增强了mongo shell(仅支持ver> 2.4,当前版本为3.0),如

  • 彩色化
  • 其他shell命令(count documents / count docs / etc)
  • API Additions(db.collection.find({...})。last(),db.collection.find({...})。reverse()等)
  • 聚合框架

我在生产环境中使用的时间尚未出现问题。

答案 6 :(得分:1)

解决了这个问题,但无法弄清楚如何从外部加载的mongo中打印它。所以:

此功能适用于控制台:,在控制台中更受欢迎,但不适用于外部mongo加载的javascript:

db.quizes.find().pretty()

这在外部mongo加载的javscript中有效:

db.quizes.find().forEach(printjson)

答案 7 :(得分:-1)

检查出来:

db.collection.find().pretty()