【发布时间】:2016-10-26 09:15:32
【问题描述】:
rs.slaveOk() 启用对 MongoDB 副本集中从属成员的读取操作。
用什么函数来禁用它?
【问题讨论】:
标签: mongodb mongodb-replica-set
rs.slaveOk() 启用对 MongoDB 副本集中从属成员的读取操作。
用什么函数来禁用它?
【问题讨论】:
标签: mongodb mongodb-replica-set
只需输入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。
【讨论】: