为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 mongo-go-driver 中添加选项 `writeConcern`?

如何在 mongo-go-driver 中添加选项 `writeConcern`?

Go
繁花不似锦 2023-04-24 15:52:13
我不明白如何使用mongo-go-driver为 MongoDB 添加记录参数示例请求c.client.Database(MONGO_DATABASE).Collection(*packet.ID).InsertMany(nil, packet.Item, opt)如何指定必要的参数opt?
查看完整描述

1 回答

?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

版本 1.0


在 MongoDB Go 驱动程序生产版本中,您可以设置writeConcern如下:


import (    

    "go.mongodb.org/mongo-driver/mongo/options"     

    "go.mongodb.org/mongo-driver/bson"  

    "go.mongodb.org/mongo-driver/mongo"     

    "go.mongodb.org/mongo-driver/mongo/writeconcern" 

)


mongoURI := "mongodb://server:port/"

opts := options.Client().ApplyURI(mongoURI).SetWriteConcern(writeconcern.New(writeconcern.WMajority()))


client, err := mongo.NewClient(opts)

if err != nil {

    panic(err)

}

ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)

defer cancel()

err = client.Connect(ctx)

if err != nil {

    panic(err)

}


collection := client.Database("database").Collection("collection")

也可以看看:

  • mongo 驱动程序/mongo/选项

  • mongo 驱动程序/mongo/writeconcern

版本 0.0.16

使用mongo-go-driver,您可以设置写关注选项,如下例所示:

import(

  "github.com/mongodb/mongo-go-driver/bson"

  "github.com/mongodb/mongo-go-driver/core/writeconcern"

  "github.com/mongodb/mongo-go-driver/mongo"

  "github.com/mongodb/mongo-go-driver/mongo/collectionopt"

)


// Example document 

document := bson.VC.DocumentFromElements(

                 bson.EC.SubDocumentFromElements(

                   "foo",

                   bson.EC.Int32("bar", 101),

                 ),

               )


// Set majority write concern

wMajority := writeconcern.New(writeconcern.WMajority())


database := client.Database("database")

collection := database.Collection("collection", collectionopt.WriteConcern(wMajority))


_, err = collection.InsertOne(context.Background(), document)

也可以用来W(int)指定任意数量的mongod实例。


查看完整回答
反对 回复 2023-04-24
  • 1 回答
  • 0 关注
  • 140 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信