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.