在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-hackerhttp://mongodb-tools.com/tool/mongo-hacker/ )可以让你做更多的事情。

  • 开发者网站: http : //tylerbrock.github.io/mongo-hacker/
  • Github回购: https : //github.com/TylerBrock/mongo-hacker