2016-09-29 5 views
1

Ich habe 2 Mongo-Instanz läuft in 2 verschiedenen Servern (eine primäre und andere sekundäre); Ich bin in der Lage, ein Dokument aus dem primären Server mit diesem Verbindungscode abzuzurufen:Lesen von sekundären Replikat in mongodb durch Javascript gesetzt

var db = mongojs('user:[email protected]:27017/mydb?authSource=admin'); 

Aber wenn ich versuche, ein Dokument aus dem sekundären Server abgerufen werden, erhalte ich folgende Fehlermeldung:

{ [MongoError: not master and slaveOk=false]
name: 'MongoError',
message: 'not master and slaveOk=false',
ok: 0,
errmsg: 'not master and slaveOk=false',
code: 13435 }

Ich habe auch versucht, mit dem Code:

var db = mongojs('user:[email protected]:27017/mydb?authSource=admin&slaveOk=true'); 

Was vermisse ich?

Antwort

3

Da Sie versuchen, von Secondary auf DB-Ebene zu lesen. Sie sollten die readPreferences "secondaryPreferred" in der Verbindungs-URL für Ihre Replikatgruppe angeben.

Sie können dieses Dokument beziehen, das detailliert beschreibt, wie das zu tun ist.

Read Preferences with MongoDB Node.JS Driver

var MongoClient = require('mongodb').MongoClient 
    , format = require('util').format; 

var url = format("mongodb://%s,%s,%s/%s?replicaSet=%s&readPreference=%s" 
    , "localhost:27017", 
    , "localhost:27018" 
    , "localhost:27019" 
    , "exampleDb" 
    , "foo" 
    , "secondaryPreferred"); 

MongoClient.connect(url, function(err db) { 
    if(!err) { 
    console.log("We are connected"); 
    } 
}); 
+0

Vielen Dank! Es funktionierte –

Verwandte Themen