在Mongo中,如何在执行.find()时显示结果,如同做一个.findOne()
findOne()
产生漂亮的json对象。
find()
结果是jble对象的jarbled。
如何使find()
与findOne()
相同,在mongo shell中显示?
如果你使用JavaScript脚本,你可以使用dcrosta的答案。 但是如果你想直接在mongo交互式shell上打印,你必须追加pretty()到你的find()查询。
在shell上input: db.yourcollection.find().pretty()
find()
返回的游标对象支持forEach()
,所以你可以使用:
db.foo.find().forEach(printjson)
但是请注意,与显示前10个对象的find()
的默认输出不同, forEach()
将迭代整个结果集,然后让您select是否继续迭代。 因此,如果您的查询返回许多结果,这可能需要一段时间,可能不是非常有用的。 limit()
是你的朋友在这里。
使用.pretty()
已经提供了正确的答案。
不过就像旁注一样,你也可以在游标上调用.toArray()来获取JSON的javascript数组文件。
db.foo.find().toArray()
方便的mongo-shell增强器mongo-hacker ( http://mongodb-tools.com/tool/mongo-hacker/ )可以让你做更多的事情。
- 开发者网站: http : //tylerbrock.github.io/mongo-hacker/
- Github回购: https : //github.com/TylerBrock/mongo-hacker