次のオプションを使用してみてください:
var mongoose = require("mongoose");
var dbUrl = "mongodb://***.***.***.***:27017,***.***.***.***:27017,***.***.***.***:27017,***.***.***.***:27017,***.***.***.***:27017/exampleDb";
mongoose.connect(dbUrl, {
server: {
readPreference: "nearest",
strategy: "ping"
},
replset: {
rs_name: "exampleRepSet",
readPreference: "nearest",
strategy: "ping"
}
});
ドキュメントではping
が指定されていますが デフォルトの戦略として、Mongooseは、readPreference
を使用するときに指定することを義務付けているようです。 。
secondaryPreferred
にも注意してください nearest
と同じものではありません 。 secondaryPreferred
nearest
ネットワーク遅延に関係なく、(名前が示すように)セカンダリメンバーの読み取りを優先します ネットワーク遅延が最も少ないメンバーへの読み取りを優先します。
レプリカセットの設定に誤りがない限り、プライマリがオンラインで到達可能であることを確認してください。デフォルトでは、プライマリがオフラインの場合、Mongooseはセカンダリの使用を拒否します。