Heim >Backend-Entwicklung >Golang >Warum gibt mein MongoDB Go-Treiber „Kein Schreibproblemmodus namens „majority' gefunden' zurück?

Warum gibt mein MongoDB Go-Treiber „Kein Schreibproblemmodus namens „majority' gefunden' zurück?

Linda Hamilton
Linda HamiltonOriginal
2024-11-26 05:05:11916Durchsuche

Why Does My MongoDB Go Driver Return

Fehler „Kein Schreibproblemmodus namens ‚majority‘ gefunden“ in MongoDB

Problem:

Beim Einfügeversuch Wenn Benutzer über eine POST-Anfrage mithilfe des MongoDB Go-Treibers ein Objekt in MongoDB übertragen, kann Folgendes auftreten Fehler:

multiple write errors: [{write errors: []}, {(UnknownReplWriteConcern) No write concern mode named 'majority' found in replica set configuration}]

Ursache:

Dieser Fehler weist darauf hin, dass der in der Verbindungszeichenfolge angegebene Schreibmodus (in diesem Fall „Mehrheit“) von nicht erkannt wird der MongoDB-Replikatsatz.

Lösung:

Um diesen Fehler zu beheben, entfernen Sie die &w=majority Parameter aus der Verbindungszeichenfolge. Die überarbeitete Verbindungszeichenfolge sollte wie folgt aussehen:

mongodb+srv://user:[email protected]/DBname?retryWrites=true

Erklärung:

Schreibbedenken gibt an, wie MongoDB Schreibvorgänge (z. B. Einfügungen, Aktualisierungen) behandeln soll. Die Option majority erfordert, dass die Mehrheit der Mitglieder des Replikatsatzes den Schreibvorgang bestätigt, bevor er als erfolgreich betrachtet wird. Wenn der Replikatsatz jedoch nicht für die Unterstützung des Mehrheitsschreibproblems konfiguriert ist, schlägt der Vorgang fehl.

Indem Sie den Parameter &w=majority aus der Verbindungszeichenfolge entfernen, erlauben Sie MongoDB dies Verwenden Sie das Standard-Schreibproblem, das keine Bestätigung durch die Mehrheit der Mitglieder des Replikatsatzes erfordert. Dadurch wird sichergestellt, dass Schreibvorgänge auch dann erfolgreich sind, wenn nicht alle Mitglieder sie bestätigt haben.

Zusätzliche Details:

  • Der Schreibanliegensmodus kann als Parameter angegeben werden in der Verbindungszeichenfolge (wie im ersten Beispiel) oder über SetWriteConcern auf dem mongo.Client-Objekt.
  • Für Replikatsätze muss der Write Concern-Modus sein wird von der Replikatsatzkonfiguration unterstützt. Weitere Informationen zum Konfigurieren von Schreibproblemen für Replikatsätze finden Sie in der MongoDB-Dokumentation.
  • Das Standard-Schreibproblem für nicht authentifizierte Clients ist „Mehrheit“. Authentifizierte Clients haben standardmäßig die Schreibanliegen-Einstellung „Bestätigt“, was eine weniger strenge Schreibanliegen-Einstellung als die Mehrheit darstellt.

Das obige ist der detaillierte Inhalt vonWarum gibt mein MongoDB Go-Treiber „Kein Schreibproblemmodus namens „majority' gefunden' zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn