我正在使用猫鼬连接mongo(v3.04)副本集,我想将我的所有请求散布到集合中的所有节点。但是,在执行以下操作后,我的辅助服务器未命中,连接字符串和选项如下:
let connectionString = 'mongodb://ip1:27017/db, ip2:27017/db';
mongoose.connect(connectionString, {
server: {
socketOptions: {keepAlive: 1},
readPreference: "nearest",
strategy: "ping"
},
replset: {
rs_name: 'ReplicaSet',
socketOptions: {keepAlive: 1},
strategy: 'ping',
readPreference: 'nearest',
poolSize: 10
}
});
看起来猫鼬完全忽略了我通过的readPreference设置。我已经尝试过这里提到的许多方法,但是到目前为止还没有运气。有人可以给我提示吗?
最佳答案
readPreference: 'nearest'
表示客户端将对连接上的所有副本集成员执行ping操作,并将所有将来的读取寻址到响应最快的读取。 MongoDB客户端通常不会在主数据库和次数据库之间随机切换。
如果希望它们从辅助目录读取,请使用readPreference: 'secondaryPreferred'
。