有 Java 编程相关的问题?

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

Spring数据MongoRepository流的java内存使用

我目前正在开发一个需要与MongoDB实例交互的Spring引导应用程序。我的一个查询可能会返回大量数据。我不想一下子收回所有这些数据。根据我目前的理解,我可以在MongoRepository内指定返回类型Stream<Type>,如下所示:

@Repository
public interface TypeRepository extends MongoRepository<Type, TypeId> {
    Stream<Type> findByValue(String value);
}

然后在服务方法中,执行如下操作:

Stream<Type> typeStream = typeRepository.findByValue("value");
typeStream.forEach(t -> {
    //do some stuff
});

在本例中,一次内存中实际有多少数据?我很难理解这在引擎盖下是如何工作的。是否存在控制一次发送回多少数据的批量大小?如何配置(在MongoDB实例或客户端上)

如果有什么我可以添加到这个问题,使它更适合这个网站,请让我知道。这是我的第一个问题。从概念上讲,我理解发生了什么。但在较低的层次上,我迷失了方向。网络流量是什么样子的?它是如何控制的


共 (0) 个答案