有没有办法告诉 Mongo 漂亮的打印输出?目前,所有内容都输出到一行,难以阅读,尤其是嵌套数组和文档。
(注意:这是对问题原始版本的回答,对“默认”没有要求)
你可以要求它漂亮。
db.collection.find().pretty()
你可以加
DBQuery.prototype._prettyShell = true
到 $HOME/.mongorc.js
中的文件以默认启用全局漂亮打印。
$HOME/.mongorc.js
:gist.github.com/mathrawka/6239405 然后您可以执行类似 db.users.find().ugly() 的操作来获得它而无需漂亮的打印。
mongo --checkConf 'pretty'
,而不是通过调用 db.collection.find().limit(1)
(注意:这是对更新问题的回答)
您可以在 CLI 上执行此操作:
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()
将其格式化为与其他记录一样好记录..
哦,所以我猜 .pretty() 等于:
db.collection.find().forEach(printjson);
试试 Mongo-hacker(节点模块),它总是打印得很漂亮。 https://github.com/TylerBrock/mongo-hacker
更多它增强了 mongo shell(仅支持 ver>2.4,当前版本为 3.0),如
着色
其他 shell 命令(计数文档/计数文档/等)
API 添加(db.collection.find({ ... }).last()、db.collection.find({ ... }).reverse() 等)
聚合框架
我在生产环境中使用了一段时间,还没有问题。
$HOME/.mongorc.js
。
遇到了问题,但无法弄清楚如何从外部加载的 mongo 打印它。所以:
这适用于控制台:并且在控制台中是首选,但在外部 mongo 加载的 javascript 中不起作用:
db.quizes.find().pretty()
这适用于外部 mongo 加载的 javscript:
db.quizes.find().forEach(printjson)
看一下这个:
db.collection.find().pretty()
不定期副业成功案例分享