私は "org.mongodb.scala" %% "mongo-scala-driver" % "1.0.1" で playframework を使用し、そのコードを持っています:
val collection = Mongo.db.getCollection("regionAuth")
def getRegions = {
val find: Observable[Document] = collection.find()
Logger.info("regions searching")
find.subscribe(new Observer[Document] {
override def onError(e: Throwable): Unit = Logger.error("regions error", e)
override def onSubscribe(subscription: Subscription): Unit = Logger.info("subscribed")
override def onComplete(): Unit = Logger.info("regions done")
override def onNext(result: Document): Unit = Logger.info("region accepted")
})
find.map { region =>
Logger.info("region accepted by map")
region
}
find.foreach(_ => Logger.info("region accepted by foreach"))
find.toFuture().onComplete {
case Success(r) => Logger.info("regions accepted as future seq " + r.size)
case Failure(e) => Logger.error("regions error as future", e)
}
find
}
そしてそれは印刷します:
[情報] アプリケーション - 地域検索
[情報] アプリケーション - 購読済み
[情報] アプリケーション - foreach が受け入れたリージョン
[情報] アプリケーション - foreach が受け入れたリージョン
[情報] アプリケーション - foreach が受け入れたリージョン
[情報] アプリケーション - 将来の seq 3 として受け入れられる地域
subscribeのイベントとマップが機能しないのはなぜですか?