MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да използвате нов URL от mongodb 3.6 за свързване от golang

Видях само, че кодът стартира, след това нищо

Както разбрахте, това е, защото DialInfo по подразбиране има нулево време за изчакване. Обаждането ще блокира завинаги в очакване за установяване на връзка. Можете също да посочите изчакване с:

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

Сега не получавам достъпни сървъри

Това е така, защото globalsign/mgo в момента все още не поддържа SRV URI на низ за връзка. Вижте проблеми 112. Можете да използвате URI формата на връзката без srv (MongoDB v3.4), вижте свързан въпрос StackOverflow:41173720.

Вместо това можете да използвате mongo-go-driver, ако искате да се свържете с помощта на URI на връзката SRV, например:

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

Горният пример е съвместим с текущата версия v1.0.0




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да премахнете елемент от двойно вложен масив в документ на MongoDB.

  2. Java, MongoDB:Как да актуализирате всеки обект, докато повтаряте огромна колекция?

  3. MongoDB – ограничаване на резултатите от заявка

  4. Как да върна JSON данни от php MongoCursor

  5. MongoDB $atan2