java morphia mongodb批量检索海量数据
我想使用morphia从mongodb从db中检索200000个数据
早些时候我用的是
query.asList()
这给了我内存不足的例外 我试着把它改成
query.batchSize(50).asList()
但是没有运气
I update my code to
Iterable<DataStreams> iterable= query.fetch();
Iterator<DataStreams> iterator=iterable.iterator();
while (iterator.hasNext()) {
dataStreamsList.add(iterator.next());
}
System.out.println("iteration done");
# 1 楼答案
query.asList()
将把所有内容都放到内存中query.fetch()
将返回一个迭代器,允许您处理每个实体(默认情况下为20个批次),而无需首先将整个结果集加载到内存中