Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
默认情况下,在MongoDB shell中进行漂亮打印_Mongodb_Command Line Interface_Mongo Shell - Fatal编程技术网

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

默认情况下,在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(): 但是,这将打印

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

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

你可以要求它漂亮

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)