有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    query.asList()将把所有内容都放到内存中query.fetch()将返回一个迭代器,允许您处理每个实体(默认情况下为20个批次),而无需首先将整个结果集加载到内存中