559

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

4

8 回答 8

923

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

你可以要求它漂亮。

db.collection.find().pretty()
于 2012-02-05T03:19:23.783 回答
432

你可以加

DBQuery.prototype._prettyShell = true

到您的文件中$HOME/.mongorc.js以默认启用全局漂亮打印。

于 2012-07-09T14:47:02.520 回答
63

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

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

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

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

于 2014-02-05T13:50:29.283 回答
23

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

db.collection.find().toArray()

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

于 2013-02-01T06:39:05.347 回答
19

哦,所以我猜 .pretty() 等于:

db.collection.find().forEach(printjson);
于 2013-02-12T08:03:26.700 回答
9

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

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

  • 着色
  • 其他 shell 命令(计数文档/计数文档/等)
  • API 添加(db.collection.find({ ... }).last()、db.collection.find({ ... }).reverse() 等)
  • 聚合框架

我在生产环境中使用了一段时间,还没有问题。

于 2015-05-06T05:12:28.870 回答
5

遇到了问题,但无法弄清楚如何从外部加载的 mongo 打印它。所以:

这适用于控制台:并且在控制台中是首选,但在外部 mongo 加载的 javascript 中不起作用:

db.quizes.find().pretty()

这适用于外部 mongo 加载的 javscript:

db.quizes.find().forEach(printjson)
于 2019-05-13T06:51:29.887 回答
-1

看一下这个:

db.collection.find().pretty()
于 2016-03-01T10:19:23.807 回答