Overview
このガイドでは、 Goドライバーを使用して MongoDB Atlas の配置、 MongoDBインスタンス、またはレプリカセットに接続する方法を学習できます。
MongoDBデプロイに接続するには、次の 2 つのものが必要です。
接続 URI は、接続文字列とも呼ばれます。これは、接続するMongoDBデプロイをGoドライバーに指示します。
MongoClientオブジェクト。 への接続を作成し、 MongoDBデプロイで操作を実行します。
options.Client()
を使用して、 MongoDBに接続中のGoドライバーの動作をカスタマイズできます。
接続URI
標準の接続stringには次のコンポーネントが含まれます。
コンポーネント | 説明 |
---|---|
| 必須: これを標準接続形式の文字列として識別するプレフィックス。 |
| 任意。認証資格情報。これらを含めると、クライアントは |
| 必須。 MongoDB が実行されているホストとオプションのポート番号。 ポート番号を指定しない場合、ドライバーはデフォルトのポート |
| 任意。接続文字列に |
| 任意。 接続固有のオプションを |
Tip
Atlas 配置用の接続文字列を取得するには、クイック スタートガイドに従ってください。
接続 の作成の詳細については、stringMongoDB Server ドキュメントの「 接続 文字列 」を参照してください。
環境変数
次のコードを使用して、環境変数として接続文字列にアクセスできます。
uri := os.Getenv("MONGODB_URI")
環境変数を定義するために、GoDotEnv を使うことができます。
プロジェクトのルートにある .env
ファイルに次のアプリケーション構成を追加し、プレースホルダーを配置の接続文字列の値に置き換えます。詳細については、GoDotEnv のドキュメントを参照してください。
MONGODB_URI=mongodb+srv://<db_username>:<db_password>@<cluster-url>?retryWrites=true&w=majority
MongoDB Atlasに接続するためのクライアントの作成
MongoDB に接続するには、クライアントを作成する必要があります。クライアントが接続を管理し、データベースコマンドを実行します。
ClientOptions
オブジェクトを Connect()
メソッドに渡すことで、接続文字列とその他のクライアント オプションを使用するクライアントを作成できます。
接続 URI を指定するには、それを ApplyURI()
メソッドに渡します。これにより、新しい ClientOptions
インスタンスが返されます。その他のオプションを設定するには、オプションパッケージから関連するヘルパーメソッドを呼び出します。
Tip
接続プールでクライアントを再利用する
接続オプションの詳細については、接続オプションセクションを参照してください。クライアントの作成の詳細については、クライアントおよびConnect()の API ドキュメントを参照してください。
新しいサーバー バージョンにアップグレードするときに重大な変更を回避するために、Stable API バージョンをオプションとして設定できます。Stable API 機能について詳しくは、「Stable API」ページをご覧ください。
例
次のコードは、Atlas接続文字列と Stable APIバージョンを使用し、 MongoDBに接続して、接続が成功したことを確認するクライアントを作成する方法を示しています。
// Connects to MongoDB and sets a Stable API version package main import ( "context" "fmt" "log" "os" "go.mongodb.org/mongo-driver/v2/bson" "go.mongodb.org/mongo-driver/v2/mongo" "go.mongodb.org/mongo-driver/v2/mongo/options" ) func main() { var uri string if uri = os.Getenv("MONGODB_URI"); uri == "" { log.Fatal("You must set your 'MONGODB_URI' environment variable. See\n\t https://mongodb.com/ja-jp/docs/drivers/go/current/usage-examples/") } // Uses the SetServerAPIOptions() method to set the Stable API version to 1 serverAPI := options.ServerAPI(options.ServerAPIVersion1) // Defines the options for the MongoDB client opts := options.Client().ApplyURI(uri).SetServerAPIOptions(serverAPI) // Creates a new client and connects to the server client, err := mongo.Connect(opts) if err != nil { panic(err) } defer func() { if err = client.Disconnect(context.TODO()); err != nil { panic(err) } }() // Sends a ping to confirm a successful connection var result bson.M if err := client.Database("admin").RunCommand(context.TODO(), bson.D{{"ping", 1}}).Decode(&result); err != nil { panic(err) } fmt.Println("Pinged your deployment. You successfully connected to MongoDB!") }
追加リソース
このガイドの概念の詳細については、次のドキュメントを参照してください。
接続文字列(サーバー マニュアルを参照してください)
API ドキュメント
このガイドで説明されているメソッドとタイプの詳細については、次の API ドキュメントを参照してください。