【问题标题】:Data streaming using MongoOperations使用 MongoOperations 进行数据流式传输
【发布时间】:2017-02-28 17:49:35
【问题描述】:
我正在使用 spring data mongoOperations 对 mongoDb 发出查询,我的结果集包含大量文档。这些不能一次全部写入本地内存以避免内存占用。
我检查了 MongoOperations API,它确实有一个流方法。不确定此流方法是 Mongo 游标之上的包装器还是与 Java 8 流支持同步的东西。
使用 mongoTemplate 流式传输数据而不是将所有文档一次写入内存的最佳方法是什么?
【问题讨论】:
标签:
spring-data-mongodb
mongotemplate
【解决方案1】:
mongoOperations.stream(...) 方法返回一个迭代器。使用StreamUtils.createStreamFromIterator。使用静态导入,它简洁且工作正常:
import static org.springframework.data.util.StreamUtils.createStreamFromIterator;
//
createStreamFromIterator(mongoOperations.stream(query, SomeEntity.class)).
map(SomeEntity::getFirstName). ...