Spróbuj użyć następujących opcji:
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"
}
});
Podczas gdy dokumentacja określa ping
jako domyślna strategia wydaje się, że Mongoose nakazuje określenie jednej, gdy używasz readPreference
.
Pamiętaj też, że secondaryPreferred
to nie to samo co nearest
. secondaryPreferred
preferuje odczyty z drugorzędnych członków (jak sugeruje nazwa) niezależnie od opóźnienia sieci, gdzie nearest
nadaje priorytet odczytom do członka z najmniejszym opóźnieniem sieci.
W przypadku braku błędnej konfiguracji w zestawie replik, upewnij się, że podstawowy jest online i dostępny – domyślnie Mongoose odmówi użycia dodatkowego, jeśli podstawowy jest offline.