Zkuste použít následující možnosti:
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"
}
});
Zatímco dokumentace specifikuje ping
jako výchozí strategie se zdá, že příkazy Mongoose zadáte, když použijete readPreference
.
Všimněte si také, že secondaryPreferred
není to samé jako nearest
. secondaryPreferred
preferuje čtení sekundárních členů (jak název napovídá) bez ohledu na latenci sítě, kde nearest
upřednostňuje čtení na člena s nejnižší latencí sítě.
Kromě chybné konfigurace ve vaší sadě replik se ujistěte, že primární je online a je dosažitelné – ve výchozím nastavení Mongoose odmítne použít sekundární, pokud je primární offline.