Prøv at bruge følgende muligheder:
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"
}
});
Mens dokumentationen specificerer ping som standardstrategien ser det ud til, at Mongoose giver mandat, at du angiver en, når du bruger readPreference .
Bemærk også, at secondaryPreferred er ikke det samme som nearest . secondaryPreferred foretrækker aflæsning af sekundære medlemmer (som navnet antyder) uanset netværksforsinkelse, hvor nearest prioriterer læsninger til medlemmet med den laveste mængde netværksforsinkelse.
Bortset fra en forkert konfiguration i dit replikasæt, skal du sørge for, at din primære er online og tilgængelig - som standard vil Mongoose nægte at bruge en sekundær, hvis den primære er offline.