このガイドでは、Scala ドライバーとその非同期 API の背景を説明してから、 クイック スタート ガイドでドライバーと MongoDB の使用方法を説明します。
注意
ドライバーをインストールする方法については、「インストール 」のガイドを参照してください。
Reactive Streams
Scala ドライバーは、 MongoDB Java Reactive Streams ドライバー 上に構築されています。 Reactive Stream API は、次のコンポーネントで構成されています。
Observableは、 ObserverまたはObserverの複数のインスタンスから受け取った要求に応じて公開される、潜在的に無制限の数のシーケンス化された要素のプロバイダーです。
Observable.subscribe(Observer)への呼び出しに応答して、 Observerクラスのメソッドに可能な呼び出しシーケンスは、次のプロトコルによって提供されます。
onSubscribe onNext* (onError | onComplete)? 
つまり、 onSubscribe()は常にシグナルられ、その後にObserverからリクエストされた場合、上限の数のonNext()シグナルが続く可能性があります。 これには、障害が発生した場合はonError()シグナルが送信され、 Subscriptionがキャンセルされていない限り、使用できる要素が ない 場合はonComplete()シグナルが送信されます。
Tip
Reactive Streams の詳細については、Reactive Streams のドキュメント を参照してください。
Observables
ScalaドライバーAPIは、 Java Sync Driver APIとネットワーク I/O が Observable<T> タイプを返します。ここで示した T は操作の応答タイプです。
注意
バックプレッシャー
デフォルトでは、 Observer特権は、 Observableがサブスクライブされるとすぐに、 Observerからのすべての結果をリクエストします。 ObserverがObservableからのすべての結果を処理できることを確認します。 Observer.onSubscribe()メソッドのカスタム実装によりSubscriptionを保存し、 Observerに容量がある場合にのみデータがリクエストされるようにします。
クイック スタートの で使用されるヘルパー
クイック スタートでは、ドライバー ソースGithubリポジトリの ヘルパース.scalaファイルで定義されたカスタム暗黙的なヘルパーを実装しました。これらのヘルパーは結果を検索して出力します。クイック スタートは非同期コードの疑似シナリオですが、データベースの状態を確保するために、次の例を開始する前にある例の結果をブロックします。Helpersオブジェクトは次のメソッドを提供します。
results():Observableが完了するまでブロックし、収集された結果を返しますheadResult():Observableの最初の結果が返されるまでブロックしますprintResults():Observableが完了するまでブロックされ、各結果を出力しますprintHeadResult():Observableの最初の結果が利用可能になるまでブロックし、それを出力します