使用MongoOperations

时间:2017-02-28 17:49:35

标签: spring-data-mongodb mongotemplate

我使用spring数据mongoOperations对mongoDb发出查询,我的结果集包含大量文档。这些不能一次性写入本地存储器以避免内存耗尽。 我检查了MongoOperations API,它确实有一个流方法。不确定此流方法是否是Mongo游标之上的包装器或与Java 8流支持同步的东西。 使用mongoTemplate流式传输数据的最佳方法是什么,而不是一次性将所有文档写入内存?

1 个答案:

答案 0 :(得分:0)

mongoOperations.stream(...)方法返回一个Iterator。使用StreamUtils.createStreamFromIterator。借助静态导入,它简洁明了并且可以正常运行:

import static org.springframework.data.util.StreamUtils.createStreamFromIterator;
//
createStreamFromIterator(mongoOperations.stream(query, SomeEntity.class)).
                map(SomeEntity::getFirstName). ...