sql >> Databáze >  >> NoSQL >> MongoDB

Jak používat novou adresu URL z mongodb 3.6 pro připojení z golang

Viděl jsem pouze, že kód začal, pak nic

Jak jste zjistili, je to proto, že DialInfo má ve výchozím nastavení nulový časový limit. Hovor bude navždy zablokován čekání na navázání spojení. Časový limit můžete také určit pomocí:

dialInfo.Timeout = time.Duration(30)
session, err := mgo.DialWithInfo(dialInfo)

Nyní nemám žádné dostupné servery

Důvodem je, že globalsign/mgo zatím nepodporuje URI připojovacího řetězce SRV. Viz problémy 112. Můžete použít jiný formát URI připojení než SRV (MongoDB v3.4), viz související otázka StackOverflow:41173720.

Místo toho můžete použít mongo-go-driver, pokud se chcete připojit pomocí URI připojení SRV, například:

mongoURI := "mongodb+srv://admin:[email protected]/dbname?ssl=true&retryWrites=true"

client, err := mongo.NewClient(options.Client().ApplyURI(mongoURI))
if err != nil {
    log.Fatal(err)
}
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
defer cancel()
err = client.Connect(ctx)
defer client.Disconnect(ctx)

if err != nil {
    log.Fatal(err)
}
database := client.Database("go")
collection := database.Collection("atlas")

Výše uvedený příklad je kompatibilní s aktuální verzí v1.0.0




  1. Jak aktualizuji/upsuji dokument v Mongoose?

  2. Zkrátit sbírku

  3. Jak implementovat transakci s vrácením zpět v Redis

  4. Má Meteor odlišný dotaz na sbírky?