1
我有一个Spray应用程序,我使用reactive-mongo连接到我的Mongo数据库。将枚举器/对象迭代到流
val collection: BSONCollection = db("ping")
val cursor: Cursor[Ping] = collection.find(BSONDocument()).cursor[Ping]
val e: Enumerator[Ping] = cursor.enumerate()
ReactiveMongo的游标允许我通过块获取数据。这个游标可以被转换为一个play.api.libs.iteratee.Enumerator,它又被连接到一个play.api.libs.iteratee.Iteratee,我们需要为集合的每个元素调用任何代码。 “Ping”是我的域名实体。
使用Spray可以返回一个Stream [Ping],将被编组为JSON响应。我想知道是否有可能将Enumerator或Iteratee调整为Stream,因此我可以将其返回。
关闭。返回一个Future [流[平安],但是当我尝试它,它只返回集合的第一个元素。 – Luciano 2013-05-01 21:48:51
使用'cursor.toList.toStream'编辑。 – 2013-05-01 22:51:59
你知道,如果,假设一千对象的集合,使用toList.toStream将加载所有的人都在内存中,从蒙戈,或者如果他们将获取一次一个? – Luciano 2013-05-01 22:58:08