如何在MongoDB的shell中打印超过20个项目(文档)?

db.foo.find().limit(300) 

不会这样做。 它仍然只打印出20个文件。

 db.foo.find().toArray() db.foo.find().forEach(printjson) 

都将打印出每个文档的非常扩展的视图,而不是find()的单行版本:

DBQuery.shellBatchSize = 300

会做。

MongoDB Docs – mongo Shell入门 – 执行查询

您可以在shell中使用it来遍历接下来的20个结果。 只要inputit如果你看到“有更多”,你会看到接下来的20个项目。

如果你想要显示所有的结果,你可以从db.collection.find().toArray()来获得所有的结果。

总是可以这样做:

 db.foo.find().forEach(function(f){print(tojson(f, '', true));}); 

得到那个紧凑的看法。

另外,我觉得限制查找返回的字段非常有用:

 db.foo.find({},{name:1}).forEach(function(f){print(tojson(f, '', true));}); 

这将只返回foo中的_id和name字段。

在mongo shell中,如果返回的游标未使用var关键字指定给variables,则会自动迭代游标以访问与查询匹配的前20个文档。 您可以设置DBQuery.shellBatchSizevariables来更改自动迭代文档的数量。

参考 – https://docs.mongodb.com/v3.2/reference/method/db.collection.find/