Connexion URI MongoDB 3.6 depuis Go
Q : Comment se connecter à MongoDB Atlas à l'aide des pilotes Golang dans les dernières versions de MongoDB ?
Les pilotes Go des versions 3.6 ne prennent plus en charge le format URI de connexion SRV par défaut. Au lieu de cela, les utilisateurs doivent utiliser le format URI de connexion non SRV.
Correction :
<br>mongoURI := "mongodb://admin : [email protected]:27017/dbname"</p> <p>dialInfo, err := mgo.ParseURL(mongoURI)<br>if err != nil {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">panic(err)
}
dialInfo.Timeout = time.Duration(30)
session, err := mgo.DialWithInfo( dialInfo)
if err != nul {
println("error") log.Fatal(err)
}
Q : Obtention de l'erreur « Aucun serveur accessible »
Ce problème se produit car globalsign/mgo ne prend pas en charge l'URI de la chaîne de connexion SRV encore.
Correction :
Utilisez plutôt mongo-go-driver pour vous connecter à l'aide de l'URI de connexion SRV :
<br> mongoURI := "mongodb srv://admin:[email protected]/dbname?ssl=true&retryWrites=true"</p> <p>client, err := mongo.NewClient(options.Client().ApplyURI(mongoURI))<br>if err != néant {</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">log.Fatal(err)
}
ctx, annuler := context.WithTimeout(context.Background(), 3*time.Second)
defer Cancel()
err = client.Connect(ctx)
if err != nil {
log.Fatal(err)
>
différer client.Disconnect(ctx)
base de données := client.Database("go")
collection := database.Collection("atlas")
Remarque : Mettez à jour le mongo-go- pilote vers la version 1.0.0 ou supérieure pour la compatibilité avec l'exemple fourni.
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!