【问题标题】:Disable read operation ont the slave member for a mongodb replicaset禁用对 mongodb 副本集的从属成员的读取操作
【发布时间】:2016-10-26 09:15:32
【问题描述】:

rs.slaveOk() 启用对 MongoDB 副本集中从属成员的读取操作。

用什么函数来禁用它?

【问题讨论】:

    标签: mongodb mongodb-replica-set


    【解决方案1】:

    只需输入rs.slaveOk(false)

    在shell中你可以看到每个命令执行的代码是什么,所以如果你提示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;
    }
    

    如您所见,setSlaveOk 具有 true 作为默认值,因此通过指定 false 可以防止从辅助读取。

    编辑:正如 dAm2K 在下面的评论中所说的那样,rs.slaveOk 已从 MongoDB 4.4 版中弃用;只需使用rs.secondaryOk

    【讨论】:

    • 只是说 rs.slaveOk() 现在已弃用,取而代之的是 rs.secondaryOk()
    猜你喜欢
    • 1970-01-01
    • 2022-01-26
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    • 2017-01-03
    相关资源
    最近更新 更多