Probeer de volgende opties:
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"
}
});
Terwijl de documentatie ping
specificeert als de standaardstrategie lijkt het erop dat Mongoose vereist dat u er een opgeeft wanneer u readPreference
gebruikt .
Houd er ook rekening mee dat secondaryPreferred
is niet hetzelfde als nearest
. secondaryPreferred
geeft de voorkeur aan het lezen van secundaire leden (zoals de naam al doet vermoeden), ongeacht de netwerklatentie, waar nearest
geeft prioriteit aan het lezen van het lid met de laagste hoeveelheid netwerklatentie.
Behalve een verkeerde configuratie in uw replicaset, moet u ervoor zorgen dat uw primaire online en bereikbaar is - standaard weigert Mongoose een secundaire te gebruiken als de primaire offline is.