MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment utiliser la nouvelle URL de mongodb 3.6 pour se connecter depuis golang

J'ai seulement pu voir que le code a commencé, puis plus rien

Comme vous l'avez compris, c'est parce que DialInfo a par défaut un délai d'attente nul. L'appel sera bloqué pour toujours en attendant qu'une connexion soit établie. Vous pouvez également spécifier un délai d'attente avec :

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

Maintenant, je n'obtiens aucun serveur accessible

En effet, globalsign/mgo ne prend pas encore en charge l'URI de la chaîne de connexion SRV. Voir les problèmes 112.Vous pouvez utiliser le format URI de connexion non-srv (MongoDB v3.4), voir une question connexe StackOverflow :41173720.

Vous pouvez utiliser mongo-go-driver à la place si vous souhaitez vous connecter en utilisant l'URI de connexion SRV, par exemple :

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

L'exemple ci-dessus est compatible avec la version actuelle v1.0.0