Heim > Backend-Entwicklung > Golang > Wie behebt man den Fehler „Kein Schreibproblemmodus namens „Majority' gefunden' in MongoDB?

Wie behebt man den Fehler „Kein Schreibproblemmodus namens „Majority' gefunden' in MongoDB?

Barbara Streisand
Freigeben: 2024-12-04 21:55:14
Original
590 Leute haben es durchsucht

How to Resolve

Write Concern Error in MongoDB

Beim Einfügen von Daten in MongoDB unter Verwendung des Majority Write Concern kann der folgende Fehler auftreten:

No write concern mode named 'majority`' found in replica set configuration
Nach dem Login kopieren

Dieser Fehler tritt auf, weil die Konfiguration des Replikatsatzes keinen Schreibmodus mit dem Namen enthält Mehrheit.

Beheben des Fehlers

Um diesen Fehler zu beheben, fügen Sie den Modus „Majority Write Concern“ zur Replikatsatzkonfiguration hinzu. Das Mehrheitsschreibproblem stellt sicher, dass Daten in die Mehrheit der Replikatsatzmitglieder geschrieben werden, bevor der Schreibvorgang bestätigt wird.

Beispiel-Verbindungszeichenfolge

Die folgende Verbindungszeichenfolge enthält die Mehrheit Bedenken schreiben:

mongodb+srv://user:[email protected]/DBname?retryWrites=true&w=majority
Nach dem Login kopieren

Datenbankverbindung ändern

Aktualisieren Sie die Datenbankverbindungs-Einrichtungsfunktion zum Hinzufügen des Hauptschreibproblems:

import (
    "context"
    "time"
    
    "go.mongodb.org/mongo-driver/mongo"
)

var DbConn *mongo.Client

func SetupDB(conn_str string) {
    var err error
    opts := options.Client().ApplyURI(conn_str).SetWriteConcern(options.Majority())
    DbConn, err = mongo.NewClient(opts)
    if err != nil {
        log.Fatal(err)
    }
    ctx, _ := context.WithTimeout(context.Background(), 10*time.Second)
    err = DbConn.Connect(ctx)
    if err != nil {
        log.Fatal(err)
    }
}
Nach dem Login kopieren

Aktualisierungsanforderung

Stellen Sie sicher, dass die InsertOne-Anfrage die aktualisierte Datenbankverbindung verwendet:

ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
defer cancel()

result, err := DbConn.Database(dbName).Collection(collectionName).InsertOne(ctx, b)
Nach dem Login kopieren

Nachdem Sie diese Änderungen vorgenommen haben, führen Sie die Anwendung erneut aus und der Fehler sollte behoben sein.

Das obige ist der detaillierte Inhalt vonWie behebt man den Fehler „Kein Schreibproblemmodus namens „Majority' gefunden' in MongoDB?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage