seltsame Mongodb und Mungo Fehler: nicht Master und SlaveOk = falscher Fehler
Ich bekomme eine seltsame Fehlermeldung in meinen node.js app
not master and slaveOk=false code 13435
Mache ich eine findOne Abfrage mit Mungo 4.0.2 schlagen von mongodb in der Version 3.0.1. Die Abfrage war die Arbeit heute früher.
Was ist dieser Fehler? Ich bei mongohq auf Ihre standard-pro-gb-plan.
InformationsquelleAutor der Frage MonkeyBonkey | 2015-05-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das bedeutet, dass Sie versuchen, zu Lesen von einem sekundären Knoten in einer Replikatgruppe ist, können Sie nur Lesen vom primären Knoten standardmäßig.
Können Sie einen sekundären Knoten, zu akzeptieren, liest durch ausführen
rs.slaveOk()
in einer mongo-shell verbunden ist, die sekundären Knoten. Ermöglicht liest aus einem sekundären ist jedoch nicht empfehlenswert, da konnte man das Lesen von veralteten Daten, wenn der Knoten noch nicht synchronisiert mit den primären Knoten.InformationsquelleAutor der Antwort Nocturno
Ich dies Problem gelöst, indem Sie einfach die Festsetzung der URI meine Node.js wurde eine Verbindung zur MongoDB mit Mungo.
Wenn dieser Fehler aufgetreten, mein URI war
mongodb://user:password@host:port/datatabase
und dies gab mir die Fehlermeldung nicht beherrschen und slaveOK=false.
Dann änderte ich die URI an, fügen Sie die Replik-Set-Informationen, und der URI zu etwas wie diesem:
mongodb://user:password@host:port,replicaSetHost:replicaSetPort/database?replicaSet=rs-someServer
.Nun, ich weiß nicht, ob dies ist ein Allgemeines Muster, weil diese Konfiguration ist die Verwendung von MongoLab, die ist, wo meine Datenbank gehostet wird. Es ist jedoch wahrscheinlich werden Sie das problem lösen, indem die Replik-set-Informationen in der URI als gut.
InformationsquelleAutor der Antwort Ulysses Alves
Dies funktioniert für mich auf Mungo 4.x und mongodb 3.0.x:
sehen http://mongoosejs.com/docs/api.html#query_Query-read
InformationsquelleAutor der Antwort konghou
Ist es wahrscheinlich, Ihr master-Knoten fehlgeschlagen ist, und Sie versuchen, zu Lesen von einem slave-Knoten aber standardmäßig (und die Sicherheit der Praxis, wie die Synchronisation der Daten) Lesen-Quelle eingestellt primären Knoten nur. Können Sie Optionen an das Ende der Verbindungszeichenfolge wie
'?readPreference=sekundäre " wenn zum Beispiel unter Verwendung von Knoten.
InformationsquelleAutor der Antwort Da Qi