Maison > développement back-end > Golang > Comment se connecter avec succès à MongoDB Atlas à l'aide des pilotes Golang avec la nouvelle syntaxe URL ?

Comment se connecter avec succès à MongoDB Atlas à l'aide des pilotes Golang avec la nouvelle syntaxe URL ?

Mary-Kate Olsen
Libérer: 2024-12-26 19:28:14
original
878 Les gens l'ont consulté

How to Successfully Connect to MongoDB Atlas using Golang Drivers with the New URL Syntax?

Utilisation des pilotes Golang pour se connecter à MongoDB Atlas avec une nouvelle syntaxe d'URL

Lors de la connexion à MongoDB Atlas à l'aide des pilotes Golang, des problèmes peuvent survenir en raison de l'utilisation de la nouvelle syntaxe URL introduite dans MongoDB 3.6. Cet article explore les pièges potentiels et propose des solutions.

Erreur : ne pas se connecter

Le code présenté tente d'établir une connexion à l'aide de tls.Dial("tcp" , addr.String(), tlsConfig). Cependant, il ne spécifie pas de délai d'attente, ce qui peut entraîner un blocage indéfini du code. Pour résoudre ce problème, définissez explicitement le délai d'expiration à l'aide de dialInfo.Timeout = time.Duration(30).

Erreur : aucun serveur accessible

Lors de l'utilisation de la fonction mgo.DialWithInfo avec le mécanisme SCRAM, une erreur peut survenir indiquant qu'aucun serveur accessible n'a été trouvé. En effet, le pilote globalsign/mgo ne prend actuellement pas en charge l'URI de la chaîne de connexion SRV. Vous pouvez également utiliser le format URI de connexion non SRV (MongoDB v3.4) ou envisager d'utiliser le pilote mongo-go-driver à la place, qui prend en charge l'URI de connexion SRV.

Exemple de code utilisant Mongo-go -driver

Pour démontrer la connexion à l'aide du pilote mongo-go-driver avec l'URI de connexion SRV, considérez le code suivant extrait :

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)
}
Copier après la connexion

Cet exemple est compatible avec la version actuelle de mongo-go-driver, v1.0.0.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal