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