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

Mongodb読み取り設定

    読み取り設定は次のとおりです。

    • プライマリ :クエリはレプリカセットのプライマリに送信されます。
    • PRIMARY_PREFERRED :クエリは、利用可能な場合はプライマリに送信され、それ以外の場合はセカンダリに送信されます。
    • セカンダリ :クエリはセカンダリに分散されます。セカンダリが利用できない場合はエラーが発生します。
    • SECONDARY_PREFERRED :クエリはセカンダリ間で分散されます。セカンダリが利用できない場合はプライマリ間で分散されます。
    • 最も近い :クエリはすべてのメンバーに分散されます。

    したがって、いいえがあります 最も近いに固有のもの 二次。これは、NEARESTとtag_sets を組み合わせることで実現できます。 セカンダリにタグを付けます。

    次に、セカンダリがタグ付けされている場合{'secondaries': 1} 次のように、最も近いセカンダリから読み取ることができます:

    from pymongo import ReplicaSetConnection
    from pymongo import ReadPreference
    
    db = ReplicaSetConnection('localhost:27017', replicaSet='rs1')['my_db']
    db.read_preference = ReadPreference.NEAREST
    db.tag_sets = [{'secondaries': 1}]
    

    更新:

    選択が行われ、レプリカセットのトポロジが変更された場合は、新しいセカンダリを表すようにtag_setsを手動で変更する必要があることに注意してください。



    1. 制限付きの並べ替えと集計のスキップを使用しているときのMongoDBの重複の問題

    2. フラスコブループリントでPyMongoを使用する方法は?

    3. useNewUrlParserをtrueに設定することにより、現在のURL文字列パーサーが非推奨の警告になるのを回避する

    4. マングース-メール構文を検証する