如何在mongoose中设置mongodb副本集读取首选项?

Ron*_*Ron 0 mongodb node.js

我使用mongoose连接mongo(v3.04)副本集,我想将所有请求传播到set中的所有节点.但是,在完成以下操作后,我的辅助设备从未被命中,我的连接字符串和选项如下:

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
    }
});
Run Code Online (Sandbox Code Playgroud)

看起来mongoose完全忽略了我传递的readPreference设置.我已经尝试了很多方法,但到目前为止还没有运气.任何人都可以给我一个提示?

Phi*_*ipp 6

readPreference: 'nearest'意味着客户端将ping连接上的所有副本集成员,并将所有将来的读取解决到响应速度最快的成员.MongoDB客户端通常不会随机切换主要和次要.

如果您希望它们从辅助设备中读取,请使用readPreference: 'secondaryPreferred'.