我正在寻找一种在春季启动中流式传输Mongo DB响应的方法。
不幸的是,我得到了与Node.js相关的所有参考。
Spring Boot无法使用Java吗?
有没有建议流式mongo数据库查询结果?
答案 0 :(得分:0)
使用 Java 8 (当前使用最多)不能将mongodb流直接映射到Spring Boot输出流,必须使用StreamSupport.stream
Stream<YourData> readData(...) {
final MongoIterable<YourData> rs = myCollection.find(...)
.projection(fields(...))
.map(x -> new YourData(x));
return StreamSupport.stream(rs.spliterator(), false);
}
现在,只需将流连接到控制器:
@RequestMapping("/mydata")
public Stream<YourData> mydata(...) {
return backend.readData(...);
}
当然,您可以执行任何streaming
流程以streaming
的方式来处理数据。
@RequestMapping("/mydata")
public Stream<OutputData> mydata(...) {
return backend.readData(...).map(this::convertMyToOutput);
}