我有一个 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] ,该 Stream[Ping] 将被编组为 JSON 响应。我想知道是否可以将 Enumerator 或 Iteratee 调整为 Stream,所以我可以返回它。