Intente usar las siguientes opciones:
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"
}
});
Mientras que la documentación especifica ping
como estrategia predeterminada, parece que Mongoose exige que especifique una cuando usa readPreference
.
También tenga en cuenta que secondaryPreferred
no es lo mismo que nearest
. secondaryPreferred
prefiere lecturas de miembros secundarios (como sugiere el nombre) independientemente de la latencia de la red, donde nearest
prioriza las lecturas al miembro con la menor cantidad de latencia de red.
A falta de una configuración incorrecta en su conjunto de réplicas, asegúrese de que su principal esté en línea y accesible; de manera predeterminada, Mongoose se negará a usar un secundario si el principal está fuera de línea.