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


(注:这是原题的答案,原题没有“default”的要求)

你可以要求它很漂亮。

db.collection.find().pretty()

你可以添加

DBQuery.prototype._prettyShell = true

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


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

db.collection.find().toArray()

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


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

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

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

你可以在CLI中这样做:

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

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


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

更多的它增强了mongo shell(只支持版本>2.4,目前版本是3.0),如

彩色化 额外的shell命令(count documents/count docs/etc) API添加(db.collection。找到({…db.collection}) .last()。找到({…}) .reverse()等) 聚合框架

我在生产环境中使用for,还没有问题。


看看这个:

db.collection.find().pretty()

得到了这个问题,但不知道如何从外部加载mongo打印它。所以:

这是适用于控制台:和首选在控制台,但不工作在外部mongo加载javascript:

db.quizes.find().pretty()

这在外部mongo加载的javscript中工作:

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