Java 是可查找的<;文件>;加载所有文档?

Java 是可查找的<;文件>;加载所有文档?,java,mongodb,Java,Mongodb,目前,我正在使用MongoCollection获取所有文档,返回类型为FindIterable,然后循环使用Iterable来处理每个文档 例: FindIterable docs=getCollection().find(); 用于(文档:文档){ ... } 但我不知道FindTable是否会加载所有文档并进行循环,还是只是加载光标并在循环时提取文档?您需要的是Mongo Java驱动程序的实现细节,因此,不是公共界面的一部分,因此不能保证在将来的版本中保持不变 除此之外,从3.2.x开始

目前,我正在使用
MongoCollection
获取所有文档,返回类型为
FindIterable
,然后循环使用Iterable来处理每个文档

例:

FindIterable docs=getCollection().find();
用于(文档:文档){
...
}

但我不知道FindTable是否会加载所有文档并进行循环,还是只是加载光标并在循环时提取文档?

您需要的是Mongo Java驱动程序的实现细节,因此,不是公共界面的一部分,因此不能保证在将来的版本中保持不变

除此之外,从3.2.x开始,find()调用在引擎盖下创建一个FindOperationIterable,它使用MongoBatchCursorAdapter作为其迭代器,而迭代器又基于BatchCursor

批处理游标中的javadoc状态为:

“MongoDB批量返回查询结果,此接口 为这些批处理提供迭代器。第一次调用下一次 方法将返回第一批,并将触发后续调用 获取下一批结果的请求。客户端可以控制 通过设置对下一个调用之间的batchSize属性来确定批大小。“

因此,如果当前批次已完全读取,它将批量读取结果,并再次查询数据库

FindIterable<Document> docs = getCollection().find();
for(Document doc : docs) {
    ...
}