ホームページ >バックエンド開発 >Golang >MongoDB で「「マジョリティ」という名前の書き込み懸念モードが見つかりません」エラーを解決する方法は?

MongoDB で「「マジョリティ」という名前の書き込み懸念モードが見つかりません」エラーを解決する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-04 21:55:14612ブラウズ

How to Resolve

MongoDB の書き込み懸念エラー

マジョリティ書き込み懸念を使用して MongoDB にデータを挿入すると、次のエラーが発生する可能性があります:

No write concern mode named 'majority`' found in replica set configuration

このエラーは、レプリカ セットの構成に、という名前の書き込み懸念モードが含まれていないために発生します。 Majority.

エラーの解決

このエラーを解決するには、レプリカ セット構成にマジョリティ書き込み懸念モードを追加します。マジョリティ書き込み懸念により、書き込みを確認する前にデータがレプリカ セット メンバーの大部分に書き込まれることが保証されます。

接続文字列の例

次の接続文字列にはマジョリティが含まれています。書き込み懸念:

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

データベースの変更接続

データベース接続セットアップ関数を更新して、大部分の書き込み懸念を追加します:

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

リクエストの更新

InsertOneリクエストは更新されたデータベース接続を使用しています:

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

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

これらの変更を行った後、アプリケーションとエラーが解決されるはずです。

以上がMongoDB で「「マジョリティ」という名前の書き込み懸念モードが見つかりません」エラーを解決する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。