Versuchen Sie es mit den folgenden Optionen:
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"
}
});
Während die Dokumentation ping
angibt Als Standardstrategie scheint Mongoose zu verlangen, dass Sie eine angeben, wenn Sie readPreference
verwenden .
Beachten Sie auch, dass secondaryPreferred
ist nicht dasselbe wie nearest
. secondaryPreferred
bevorzugt das Lesen von sekundären Mitgliedern (wie der Name schon sagt), unabhängig von der Netzwerklatenz, wobei nearest
ist priorisiert Lesezugriffe auf das Mitglied mit der geringsten Netzwerklatenz.
Abgesehen von einer Fehlkonfiguration in Ihrem Replikatsatz, stellen Sie sicher, dass Ihr Primärserver online und erreichbar ist - standardmäßig weigert sich Mongoose, einen Sekundärserver zu verwenden, wenn der Primärserver offline ist.