MongoDB Go ドライバーが「「マジョリティ」という名前の書き込み懸念モードが見つかりません」を返すのはなぜですか?

Linda Hamilton
リリース: 2024-11-26 05:05:11
オリジナル
879 人が閲覧しました

Why Does My MongoDB Go Driver Return

MongoDB で「'majority' という名前の書き込み懸念モードが見つかりません」エラー

問題:

挿入しようとしたときMongoDB Go ドライバーを使用して POST リクエスト経由でオブジェクトを MongoDB に追加すると、次のような問題が発生する可能性があります。エラー:

multiple write errors: [{write errors: []}, {(UnknownReplWriteConcern) No write concern mode named 'majority' found in replica set configuration}]
ログイン後にコピー

原因:

このエラーは、接続文字列で指定された書き込み懸念モード (この場合は「マジョリティ」) が認識されないことを示します。 MongoDB レプリカset.

解決策:

このエラーを解決するには、接続文字列から &w=majority パラメータを削除します。修正された接続文字列は次のようになります。

mongodb+srv://user:[email protected]/DBname?retryWrites=true
ログイン後にコピー

説明:

書き込み懸念は、MongoDB が書き込み操作 (挿入、更新など) をどのように処理するかを指定します。 majority オプションでは、書き込み操作が成功したとみなす前に、レプリカ セット メンバーの過半数が書き込み操作を承認する必要があります。ただし、レプリカ セットがマジョリティ書き込み懸念をサポートするように構成されていない場合、操作は失敗します。

接続文字列から &w=majority パラメータを削除することで、MongoDB が次のことを実行できるようになります。デフォルトの書き込み懸念を使用します。これは、レプリカ セット メンバーの大部分からの承認を必要としません。これにより、すべてのメンバーが書き込み操作を承認していない場合でも、書き込み操作が確実に成功します。

追加の詳細:

  • 書き込み懸念モードはパラメーターとして指定できます。 (最初の例のように) 接続文字列内で、または mongo.Client オブジェクトの SetWriteConcern 経由で。
  • レプリカの場合セットの場合、書き込み懸念モードがレプリカ セット構成でサポートされている必要があります。レプリカ セットの書き込み懸念の構成の詳細については、MongoDB のドキュメントを参照してください。
  • 認証されていないクライアントに対するデフォルトの書き込み懸念は大多数です。認証されたクライアントには、デフォルトの書き込み懸念設定である確認済みがあり、これは大多数よりも厳密ではない書き込み懸念設定です。

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

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