sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongoose läser inte från Mongo sekundär databas

Prova att använda följande alternativ:

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

Medan dokumentationen anger ping som standardstrategi verkar det som att Mongoose kräver att du anger en när du använder readPreference .

Observera också att secondaryPreferred är inte samma sak som nearest . secondaryPreferred föredrar avläsning av sekundära medlemmar (som namnet antyder) oavsett nätverkslatens, där nearest prioriterar läsningar till medlemmen med den lägsta mängden nätverkslatens.

Bortsett från en felaktig konfiguration i din replikuppsättning, se till att din primära är online och nåbar - som standard kommer Mongoose att vägra använda en sekundär om den primära är offline.



  1. Söksträng med specialtecken i MongoDB-dokument

  2. Nodejs mongodb vaknar inte på servern

  3. När den första adminanvändaren skapades på mongdb-klustret fick felmeddelandet kunde inte lägga till användare:inte behörig på admin att utföra kommandot

  4. Inte lika i mongo mapper