Tente usar as seguintes opções:
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"
}
});
Enquanto a documentação especifica
ping
como a estratégia padrão, parece que o Mongoose exige que você especifique uma quando usar readPreference
. Observe também que
secondaryPreferred
não é a mesma coisa que nearest
. secondaryPreferred
prefere leituras de membros secundários (como o nome sugere) independentemente da latência da rede, onde nearest
prioriza leituras para o membro com a menor latência de rede. A menos que haja uma configuração incorreta em seu conjunto de réplicas, certifique-se de que seu primário esteja online e acessível - por padrão, o Mongoose se recusará a usar um secundário se o primário estiver offline.