sql >> Base de Datos >  >> NoSQL >> MongoDB

Mongoose no lee de la base de datos secundaria de Mongo

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.