新しいプロジェクト (Scala 2.10.3、Play2 2.2.1、Reactivemongo 0.10.0) で Scala を使い始めたばかりで、MongoDB のすべてのユーザーを外部クライアントにストリーミングする、かなり標準的なユース ケースに遭遇しました。 . Enumerator、Enumeratee API をナビゲートした後、そのための確かな解決策が見つからなかったため、次の方法でこれを解決しました。
val users = collection.find(Json.obj()).cursor[User].enumerate(Integer.MAX_VALUE, false)
var first:Boolean = true
val indexedUsers = (users.map(u => {
if(first) {
first = false;
Json.stringify(Json.toJson(u))
} else {
"," + Json.stringify(Json.toJson(u))
}
}))
私の観点からすると、これは少し注意が必要です。主な理由は、要素リストに Json 開始配列、Json 終了配列、およびコンマ区切りを追加する必要があり、それを純粋な Json ストリームとして提供できなかったためです。それをストリングスチームに変えました。
そのための標準的な解決策は何ですか?反応中のmongoを使用していますか?