1

Play 2.5.4 と ReactiveMongo を使用して Play/Scala アプリケーションを作成しています。この例に基づいて、次を使用してコレクションを取得しています

class SettingStore( val mongo:ReactiveMongoApi) {
  def collection = mongo.db.collection[BSONCollection]("Settings")
  // more code...
}

ただし、db現在は推奨されていません。非推奨の警告では の使用が推奨されてdatabaseいますが、これは を返すFutureため、すべての操作をマップする必要があります。ReactiveMongo の操作もFutures を返すため、これは冗長に思えます...コレクションを取得する適切な方法は何ですか? (または、私は何かを完全に見逃していますか?それFuture[Future[Future[A]]]は未来ですか?)

4

1 に答える 1

1

documentationを見る.databaseと、 deprecated の代わりに関数を使用した例を見ることができます.db

非非同期.dbは、プール内のアクティブな接続を見つけるのに十分な保証を提供しなかったため、非推奨になりましたMongoConnection

プールが開始されるとすぐに少なくとも 1 つの接続がアクティブであると想定していましたが、ネットワークの速度/待機時間に応じて、ReplicaSet ノードのチェック/検出に時間がかかる可能性があるため、常にそうとは限りません。

ドライバーがしばらくノードに参加できない場合 (ネットワークの中断、ノードの再起動など)、同じアサーションが間違っている可能性があります。ノードがオンラインに戻ったことを示すまで、しばらく時間がかかる場合があります。

新しい.database解決は非同期であり、使用FailoverStrategy可能な接続を待機する (または待機しない) には (選択した読み取り設定に従って、...) を使用します。

于 2016-06-16T08:12:28.517 に答える