我正在使用猫鼬连接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'

10-08 02:11