首页 >后端开发 >Golang >如何解决 MongoDB 中的'未找到名为'majority”的写入关注模式”错误?

如何解决 MongoDB 中的'未找到名为'majority”的写入关注模式”错误?

Barbara Streisand
Barbara Streisand原创
2024-12-04 21:55:14590浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn