Go からの MongoDB 3.6 URI 接続
Q: 最新バージョンの MongoDB で golang ドライバーを使用して MongoDB Atlas に接続する方法?
バージョン 3.6 の Go ドライバーはありませんデフォルトでの SRV 接続 URI 形式のサポートが終了しました。代わりに、ユーザーは非 SRV 接続 URI 形式を使用する必要があります。
修正:
<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)
セッション、err := mgo .DialWithInfo(dialInfo)
エラーの場合!= nil {
println("error") log.Fatal(err)
}
Q: 「到達可能なサーバーがありません」エラーが発生します
これこの問題は、globalsign/mgo が SRV 接続文字列 URI をサポートしていないために発生します。
修正:
SRV 接続 URI を使用して接続するには、代わりに mongo-go-driver を使用してください:
<br> mongoURI := "mongodb srv://admin:[email protected]/dbname?ssl=true&retryWrites=true"</p> <p>クライアント、エラー := mongo.NewClient(options.Client().ApplyURI(mongoURI))<br>エラーの場合!= なし{</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、キャンセル := context.WithTimeout(context.Background(), 3*time.Second)
defer cancel()
err = client.Connect (ctx)
if err != nil {
log.Fatal(err)
}
defer client.Disconnect(ctx)
データベース := client.Database("go")
コレクション := database.Collection("atlas")
注: 提供された例との互換性を確保するために、mongo-go-driver をバージョン 1.0.0 以降に更新してください。 .
以上が最新のドライバーを使用して Go から MongoDB Atlas に接続する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。