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

mongoレプリカセットの特定のノードからデータを読み取る

    最良の方法は、mongodbのマニュアルに記載されているタグを使用することです。

    https://docs.mongodb.com/manual/チュートリアル/configure-replica-set-tag-sets/

    conf = rs.conf()
    conf.members[0].tags = { "offline": "false"}
    conf.members[1].tags = { "offline": "false"}
    conf.members[2].tags = { "offline": "true"}
    rs.reconfig(conf)
    

    クライアントでは、readpreferenceをそのタグに設定するだけです

        MongoClientOptions options = MongoClientOptions
                        .builder()
                        .connectionsPerHost(config.connectionLimit)
                        .readPreference(TaggableReadPreference.secondaryPreferred(new TagSet(new Tag("offline", "true"))))
                        .socketTimeout(config.socketTimeout)
                        .connectTimeout(config.connectionTimeout)
                        .build();
        mongo = new MongoClient(NewsDAOConfig.parseAddresses(config.mongoAddress), options);
    



    1. ビッグデータアプリケーションにMongoDBを選択する際に考慮すべき要素

    2. Mongodbの低速更新ループ

    3. 配列の最後の要素を使用してコレクションを並べ替える方法

    4. mongoose node.js、$ltおよび$gtが機能しないクエリ