首頁 > 後端開發 > Golang > 如何解決 MongoDB 中的「未找到名為「majority」的寫入關注模式」錯誤?

如何解決 MongoDB 中的「未找到名為「majority」的寫入關注模式」錯誤?

Barbara Streisand
發布: 2024-12-04 21:55:14
原創
589 人瀏覽過

How to Resolve

MongoDB 中的寫入關注錯誤

使用多數寫入關注向MongoDB 插入資料時,可能會遇到以下錯誤:

No write concern mode named 'majority`' found in replica set configuration
登入後複製

出現此錯誤是因為副本集配置不包含名為的寫關注模式大多數。

解決錯誤

要解決此錯誤,請將多數寫入關注模式加入副本集配置中。大多數寫入關注確保在確認寫入之前資料已寫入大多數副本集成員。

範例連接字串

以下連接字串包含大多數寫入關注點:

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 中的「未找到名為「majority」的寫入關注模式」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板