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

不会这么做的。它仍然只打印了20份文件。

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

将打印每个文档的扩展视图,而不是find()的一行版本:


当前回答

在mongo shell中,如果返回的游标没有使用var关键字分配给一个变量,游标将自动迭代以访问与查询匹配的前20个文档。可以设置DBQuery。shellBatchSize变量来更改自动迭代文档的数量。

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

其他回答

从shell中可以使用:

db.collection.find().toArray()

显示所有文档而不必使用它。

DBQuery.shellBatchSize = 300

MongoDB Docs - Configure mongo Shell - Change mongo Shell Batch Size

您可以在shell中使用它来遍历接下来的20个结果。如果你看到“有更多”,就输入它,你会看到接下来的20项。

总是可以做:

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

为了得到紧凑的视图。

此外,我发现限制find返回的字段非常有用:

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

它将只从foo返回_id和name字段。

在mongo shell中,如果返回的游标没有使用var关键字分配给一个变量,游标将自动迭代以访问与查询匹配的前20个文档。可以设置DBQuery。shellBatchSize变量来更改自动迭代文档的数量。

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