Essayez d'utiliser les options suivantes :
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"
}
});
Alors que la documentation spécifie ping
comme stratégie par défaut, il semble que Mongoose exige que vous en spécifiiez une lorsque vous utilisez readPreference
.
Notez également que secondaryPreferred
n'est pas la même chose que nearest
. secondaryPreferred
préfère lire les membres secondaires (comme son nom l'indique) quelle que soit la latence du réseau, où nearest
donne la priorité aux lectures vers le membre avec la plus faible latence du réseau.
À moins d'une mauvaise configuration dans votre jeu de réplicas, assurez-vous que votre primaire est en ligne et accessible - par défaut, Mongoose refusera d'utiliser un secondaire si le primaire est hors ligne.