MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak używać nowego adresu URL z mongodb 3.6 do łączenia się z golang

Widziałem tylko, że kod się zaczął, potem nic

Jak już się zorientowałeś, dzieje się tak dlatego, że DialInfo domyślnie ma zerowy limit czasu. Połączenie zostanie zablokowane na zawsze w oczekiwaniu na nawiązanie połączenia. Możesz również określić limit czasu za pomocą:

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

Teraz nie otrzymuję żadnych osiągalnych serwerów

Dzieje się tak, ponieważ globalsign/mgo nie obsługuje jeszcze identyfikatora URI ciągu połączenia SRV. Zobacz zagadnienia 112. Możesz użyć formatu URI połączenia innego niż srv (MongoDB v3.4), zobacz powiązane pytanie StackOverflow:41173720.

Możesz zamiast tego użyć mongo-go-driver, jeśli chcesz połączyć się za pomocą identyfikatora URI połączenia SRV, na przykład:

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")

Powyższy przykład jest kompatybilny z aktualną wersją v1.0.0




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak przesyłać powiadomienia push za pomocą angular.js?

  2. Nie można uzyskać własności z obiektu mangusty

  3. pobierz obiekt mongodb _id po upsert z php

  4. Jak wyeksportować kolekcję do CSV w MongoDB?

  5. Połącz ciąg i liczbę w SQL