漂亮的打印在MongoDB shell默认

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

160170 次浏览

(# EYZ0)

你可以要求它很漂亮。

db.collection.find().pretty()

你可以添加

DBQuery.prototype._prettyShell = true

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

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

db.collection.find().toArray()
但是,这将打印集合中的所有文档,不像pretty()那样允许您迭代。 参考:# EYZ0 < / p >

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

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

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

你可以在CLI中这样做:

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

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

试一下Mongo-hacker(节点模块),它总是打印漂亮。 # EYZ0 < / p >

更多的它增强了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)