Java mongo scala驱动程序:返回结果的迭代器

Java mongo scala驱动程序:返回结果的迭代器,java,mongodb,scala,mongo-scala-driver,Java,Mongodb,Scala,Mongo Scala Driver,我正在使用MongoDb阅读文档。我有如下方法,返回Future[List[T]] def findAll(): List[Future[List[T]] = { db.getCollection(collectionName) .find(queryObject) .toFuture() .map{ results => results.map(/* converting result to T */).toList

我正在使用MongoDb阅读文档。我有如下方法,返回
Future[List[T]]

def findAll(): List[Future[List[T]] = {
   db.getCollection(collectionName)
      .find(queryObject)
      .toFuture()
      .map{
        results => results.map(/* converting result to T */).toList
      }
}
问题:

这个方法可以返回
Iterator[T]
Future[Iterator[T]]
而不是列表吗


文档中提到了通过subscribe方法迭代结果,但是我找不到任何具体的实现或示例来使用这个
subscribe
方法来实现我的用例。

subscribe
的文档和示例,这是什么流处理过程?
Source
不能由Mongo驱动程序想要的文档消费回调驱动吗?MongoDB到Akka流有一个适配器:它使用Java驱动程序而不是Scala驱动程序,但它有类似于
val Source:Source[Number,NotUsed]=MongoSource(numbersColl.find(classOf[Number])的功能
这是基于
源代码构建的。fromPublisher
最新的Mongo Scala驱动程序基于可轻松转换为
源代码的反应流,这是一个建议,永远不要关注特定的解决方案,而要关注你想解决
未来的实际问题[迭代器]
不会真正进行流式处理。@只需调用
Source.fromPublisher即可将其遗忘。
请检查。
Future[Iterator]
表示您有一个异步进程,该进程生成了一个迭代器,因为该异步进程正在拉取数据库,这意味着Future完成时,所有数据都在内存中,因此迭代器不是真正的流式处理;除非迭代器再次拉入DB,否则它将阻塞异步进程。