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

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

Barbara Streisand
リリース: 2024-12-04 21:55:14
オリジナル
598 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート