У меня есть приложение 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 к потоку, чтобы я мог вернуть это.