在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