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

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

Barbara Streisand
发布: 2024-12-04 21:55:14
原创
588 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板