sql >> データベース >  >> NoSQL >> MongoDB

MongoDB + Azure + Android:エラー:com.mongodb.MongoException:マスターと通信せず、再試行が使い果たされました

    断続的なエラーの理由は、主にレプリカセットに関して、ドライバーのデフォルトの読み取り設定が原因です。デフォルトの読み取り設定はプライマリです。以下に説明する各モードでは、PRIMARYはマスターデータベース(常に最新)を指し、SECONDARYはスレーブを指します。スレーブは基本的にマスターのコピーであり、常に最新であるとは限りません。

    PRIMARY: The default read mode. Read from primary only. Throw an error if
             primary is unavailable. Cannot be combined with tags.
    

    読み取り設定を次のいずれかに変更するための解決策:

    PRIMARY PREFERRED: Read from primary if available, otherwise a secondary.
    SECONDARY PREFERRED: Read from a secondary if available, otherwise read from the primary.
    NEAREST: Read from any member node from the set of nodes which respond the fastest.
    

    コード例:

    // Use this when doing a read if you don't care if the data is always consistent.
    // Change the following with secondaryPreferred() if you have high writes, so
    // that you don't interfere with them.
    ReadPreference preference = ReadPreference.primaryPreferred();
    DBCursor cur = new DBCursor(collection, query, null, preference);
    

    詳細については、ソース> 。




    1. mongodb集計を使用して、ネストされた配列内にある値の合計を見つける方法は?

    2. MongoDBとDjangoで使用するPythonAPI

    3. 論理バックアップを使用してMongoDBで特定のコレクションを復元する方法

    4. MongoDB:@DBRefによるクエリ