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

Mongoose læser ikke fra Mongo sekundær database

Prøv at bruge følgende muligheder:

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

Mens dokumentationen specificerer ping som standardstrategien ser det ud til, at Mongoose giver mandat, at du angiver en, når du bruger readPreference .

Bemærk også, at secondaryPreferred er ikke det samme som nearest . secondaryPreferred foretrækker aflæsning af sekundære medlemmer (som navnet antyder) uanset netværksforsinkelse, hvor nearest prioriterer læsninger til medlemmet med den laveste mængde netværksforsinkelse.

Bortset fra en forkert konfiguration i dit replikasæt, skal du sørge for, at din primære er online og tilgængelig - som standard vil Mongoose nægte at bruge en sekundær, hvis den primære er offline.



  1. Hvordan deaktiverer man mongoDB java-driverlogning?

  2. Mongoose async/wait find derefter redigere og gemme?

  3. Ændre strengdato til ISO-dato i MongoDB?

  4. Mongoose med ReplicaSet på Atlas