Как добавить опцию `writeConcern` в mongo-go-driver? - PullRequest
0 голосов
/ 12 октября 2018

Я не понимаю, как добавить параметры записи для MongoDB с помощью mongo-go-driver

Пример запроса

c.client.Database(MONGO_DATABASE).Collection(*packet.ID).InsertMany(nil, packet.Item, opt)

Как указать необходимые параметры вopt

1 Ответ

0 голосов
/ 16 октября 2018

ВЕРСИЯ 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")

См. Также:

ВЕРСИЯ 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 экземпляров.Подробнее writeconcern / writeconcern.go

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...