默认情况下,在MongoDB shell中进行漂亮打印
有没有办法告诉Mongo打印输出漂亮?目前,所有内容都输出到一行,很难阅读,尤其是嵌套数组和文档。(注意:这是对问题原始版本的回答,其中没有“默认”要求) 你可以要求它漂亮默认情况下,在MongoDB shell中进行漂亮打印,mongodb,command-line-interface,mongo-shell,Mongodb,Command Line Interface,Mongo Shell,有没有办法告诉Mongo打印输出漂亮?目前,所有内容都输出到一行,很难阅读,尤其是嵌套数组和文档。(注意:这是对问题原始版本的回答,其中没有“默认”要求) 你可以要求它漂亮 db.collection.find().pretty() 你可以加上 DBQuery.prototype._prettyShell = true 到$HOME/.mongorc.js中的文件,默认情况下启用全局打印。因为它基本上是一个javascript shell,所以您也可以使用toArray(): 但是,这将打印
db.collection.find().pretty()
你可以加上
DBQuery.prototype._prettyShell = true
到
$HOME/.mongorc.js中的文件,默认情况下启用全局打印。因为它基本上是一个javascript shell,所以您也可以使用toArray()
:
但是,这将打印集合的所有文档,而不是允许您进行迭代的pretty()
。
请参考:哦,我猜.pretty()等于:
db.collection.find().forEach(printjson);
(注:这是对更新问题的回答)
您可以在CLI上执行此操作:
echo DBQuery.prototype._prettyShell = true >> ~/.mongorc.js
而且它总是会输出漂亮的结果。尝试一下Mongo hacker(节点模块),它总是输出漂亮的结果。
它增强了MongoShell(仅支持版本>2.4,当前版本为3.0),如
- 着色
- 其他shell命令(计数文档/计数文档/etc)
- API添加(db.collection.find({…}).last()、db.collection.find({…}).reverse()等)
- 聚合框架
我在production env中使用了一段时间,还没有问题。查看以下内容:
db.collection.find().pretty()
解决了这个问题,但不知道如何从外部加载的mongo打印它。因此:
这适用于控制台:并且在控制台中首选,但在外部mongo加载的javascript中不起作用:
db.quizes.find().pretty()
这适用于外部mongo脚本:
db.quizes.find().forEach(printjson)
如果您希望输出彩色化+其他增强功能,请查看@SAFXNow:如何从加载到Mongo中的外部javascript打印输出?这将不起作用…您需要创建一个自定义函数来禁用它。将此添加到您的$HOME/.mongorc.js
:然后您可以执行类似db.users.find().ught()的操作来获得它,而不需要漂亮的打印。+1这很好。对于$HOME文件夹中没有.mongorc.js文件的用户;您可以创建此文件并在其中添加命令。重新启动shell之后,它就可以工作了!如何在cli或mongo shell中验证此选项是否已启用?我的意思是,是否有一个特殊的命令,比如mongo--checkConf'pretty'
,而不是通过调用db.collection.find().limit(1)
@staackuser2,这个链接似乎被破坏了:(这应该是公认的答案,因为问题指向:如何使它成为默认选项。用户已经熟悉了.pretty()方法,但不想每次都编写它。MongoDB shell版本:2.6.7和Oh My Zsh非常有趣的是,在控制台中,.toArray()
函数输出的JSON格式比.pretty()
函数更好。即:我收集的第一条记录与其他记录不同(这可能是问题所在),但.pretty()
将其转储为{“\u id”:“VERSION”,“v”:“1.5”}
-所有内容都在一行中,其中.toArray()
格式和其他记录一样好..如果我没有mongodb,只是安装了meteor怎么办?注意:当你使用npm安装mongo hacker时,它显然覆盖了$HOME/.mongorc.js
。现在:如何从加载到mongo的外部javascript打印它?@WitoldKaczurba尝试搜索你问题的答案。如果你如果找不到答案,请继续并将其作为一个新问题发布。如果您希望使用MongoDB和Ruby on Rails实现彩色输出和漂亮的日志记录,您可以签出
db.quizes.find().forEach(printjson)