MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Mongoose non legge dal database secondario di Mongo

Prova a utilizzare le seguenti opzioni:

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"
    }
});

Mentre la documentazione specifica ping come strategia predefinita, sembra che Mongoose richieda di specificarne uno quando usi readPreference .

Nota anche che secondaryPreferred non è la stessa cosa di nearest . secondaryPreferred preferisce leggere i membri secondari (come suggerisce il nome) indipendentemente dalla latenza della rete, dove nearest dà la priorità alle letture al membro con la quantità più bassa di latenza di rete.

A parte un errore di configurazione nel set di repliche, assicurati che il tuo primario sia online e raggiungibile:per impostazione predefinita Mongoose rifiuterà di utilizzare un secondario se il primario è offline.