2016-05-30 13 views
4

mongodbデータベースにデータを挿入できましたが、クエリからデータを抽出する方法がわかりません。私は車のMongoDBのデフォルトのScalaを使用します。Scala mongodb:リストのクエリの結果

"org.mongodb.scala" %% "モンゴ・スカラ座ドライバ" % "1.1.1"

documentationがによって、エラーが含まれているようです道。これは、ドキュメントから貼り付けたコピーである一方、この行は、コンパイルエラーを上昇:

collection.find().first().printHeadResult() 

これは私がコレクションを照会する方法である:

上のIオブジェクトのScalaのコレクションに変換する方法
collection.find() 

反復処理できますか?ありがとう

+0

同じエラー%% "モンゴ・スカラ座ドライバ" % "2.1.0"' – Kruser

答えて

2

はい、私はコンパイルエラーに同意します。私は "collection.find()。first()。printHeadResult()"は、scalaドライバ1.1.1リリースの一部ではないと思います。このコードを使用している現在のスカラドライバgithubは "1.2.0-SNAPSHOT"バージョンです。

次のコードを使用して結果を得ることができます。ただし、以下のコードを使用すると、一部の非同期動作が発生することがあります。ドライバのマニュアルを参照してください。 ` "org.mongodb.scala" を使用して、ここで

val observable: FindObservable[Document] = collection.find(); 
observable.subscribe (new Observer[Document] { 
    override def onNext(result: Document): Unit = println(result.toJson()) 
    override def onError(e: Throwable): Unit = println("Failed" + e.getMessage) 
    override def onComplete(): Unit = println("Completed") 
}) 

Mongo driver Observables link

+1

おかげで、しかし、何をやっていると、使用していますサブスクライブ関数内のデータ。これらのデータが購読機能の外に必要な場合はどうなりますか?すべての結果のリストを返す 'subscribe'関数のようなものがありますか? – Moebius

+1

私はスカラードライバのlibのようなものは表示されません。しかし、あなたは "カスバ"を探索することができます。私はそれを試みたとき、それは私のscalaのバージョンと互換性がありませんでした。だから、私はその考えを打ち砕いた。このオプションを調べることができます。 http://api.mongodb.com/scala/casbah/2.0/tutorial.html – notionquest

関連する問題