rs.slaveOk()
在 MongoDB 副本集中的从属成员上启用读取操作。
用什么功能来禁用它?
只需键入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
.