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.