有没有一种方法可以告诉Mongo输出时进行漂亮的打印?目前,所有内容都输出为单行,尤其是对于嵌套的数组和文档,阅读起来很困难。
有没有一种方法可以告诉Mongo输出时进行漂亮的打印?目前,所有内容都输出为单行,尤其是对于嵌套的数组和文档,阅读起来很困难。
(注意:这是对原问题的回答,该问题没有要求“默认值”)
你可以要求它更漂亮。
db.collection.find().pretty()
DBQuery.prototype._prettyShell = true
将以下代码添加到您的$HOME/.mongorc.js
文件中,以默认情况下全局启用漂亮的打印输出。
$HOME/.mongorc.js
文件中:https://gist.github.com/mathrawka/6239405。然后,您可以执行类似于`db.users.find().ugly()`的命令来获取不带格式的输出。 - staackuser2mongo --checkConf 'pretty'
,而不是调用db.collection.find().limit(1)
。 - Green(注意:这是对更新后问题的回答)
你可以在命令行界面上直接执行此操作:
echo DBQuery.prototype._prettyShell = true >> ~/.mongorc.js
它总是会输出漂亮的结果。
由于它基本上是一个JavaScript shell,因此您也可以使用toArray()
:
db.collection.find().toArray()
然而,这会打印出集合中的所有文档,不像 pretty()
可以让你迭代。
参考:http://docs.mongodb.org/manual/reference/method/cursor.toArray/.toArray()
函数输出的 JSON 格式比 .pretty()
函数更好。例如:我的集合中的第一条记录与其他记录不同(可能是问题所在),但是 .pretty()
将其输出为 { "_id" : "VERSION", "v" : "1.5" }
- 全部在一行上,而 .toArray()
则像其他记录一样进行了良好的格式化。 - kodybrown哦,所以我猜 .pretty() 等同于:
db.collection.find().forEach(printjson);
$HOME/.mongorc.js
。 - Hubro我找到了问题,但不知道如何从外部加载的mongo中打印它。因此:
这个方法适用于控制台:并且在控制台中更为方便,但无法在外部加载的mongo JavaScript中使用:
db.quizes.find().pretty()
这个在外部加载mongo的javascript中有效:
db.quizes.find().forEach(printjson)
看看这个:
db.collection.find().pretty()