2

rs.slaveOk()MongoDB レプリカ セットのスレーブ メンバーに対する読み取り操作を有効にします。

それを無効にするために使用される機能は何ですか?

4

1 に答える 1

2

と入力するだけですrs.slaveOk(false)

シェルでは、各コマンドに対して実行されるコードが何であるかを確認できるため、rs.slaveOk(括弧なしで) 入力すると、次のようになります。

rs.slaveOk
function (value) {
    return db.getMongo().setSlaveOk(value);
}

slaveOk実際には、ブール値のパラメーターを受け入れて を呼び出す関数もあり、これsetSlaveOkは次のコードで構成されています。

db.getMongo().setSlaveOk
function (value) {
    if (value == undefined)
        value = true;
    this.slaveOk = value;
}

ご覧のとおりsetSlaveOktrueデフォルト値なので、false を指定することでセカンダリからの読み取りを防ぐことができます。

編集: 以下のコメントで dAm2K によって正確に述べられているように、rs.slaveOkMongoDB のバージョン 4.4 から廃止されました。そのまま使用してrs.secondaryOkください。

于 2016-10-26T11:03:57.017 に答える