MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Mongoose não está lendo do banco de dados secundário do Mongo


Tente usar as seguintes opções:
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"
    }
});

Enquanto a documentação especifica ping como a estratégia padrão, parece que o Mongoose exige que você especifique uma quando usar readPreference .

Observe também que secondaryPreferred não é a mesma coisa que nearest . secondaryPreferred prefere leituras de membros secundários (como o nome sugere) independentemente da latência da rede, onde nearest prioriza leituras para o membro com a menor latência de rede.

A menos que haja uma configuração incorreta em seu conjunto de réplicas, certifique-se de que seu primário esteja online e acessível - por padrão, o Mongoose se recusará a usar um secundário se o primário estiver offline.