Golang ドライバーを使用して新しい URL 構文で MongoDB Atlas に接続する
Golang ドライバーを使用して MongoDB Atlas に接続すると、次のような問題が発生する可能性があります。 MongoDB 3.6 で導入された新しい URL 構文の使用。この記事では、潜在的な落とし穴を調査し、解決策を示します。
エラー: 接続されていません
提示されたコードは、tls.Dial("tcp" を使用して接続を確立しようとします) 、addr.String()、tlsConfig) 関数。ただし、タイムアウトが指定されていないため、コードが無期限にブロックされる可能性があります。これを解決するには、dialInfo.Timeout = time.Duration(30).
Error: No Reachable Servers
mgo.DialWithInfo 関数を使用する場合、タイムアウトを明示的に設定します。 SCRAM メカニズムを使用すると、到達可能なサーバーが見つからなかったことを示すエラーが発生する場合があります。これは、globalsign/mgo ドライバーが現在 SRV 接続文字列 URI をサポートしていないためです。あるいは、非 SRV 接続 URI 形式 (MongoDB v3.4) を使用するか、代わりに SRV 接続 URI をサポートする mongo-go-driver の使用を検討してください。
Mongo-go を使用したサンプル コード-driver
SRV 接続 URI で mongo-go-driver を使用した接続をデモンストレーションするには、次のことを考慮してください。コード スニペット:
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) }
この例は、mongo-go-driver の現在のバージョン v1.0.0 と互換性があります。
以上が新しい URL 構文の Golang ドライバーを使用して MongoDB Atlas に正常に接続するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。