Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
Go Driver
/

MongoClient の作成

このガイドでは、 Goドライバーを使用して MongoDB Atlas の配置、 MongoDBインスタンス、またはレプリカセットに接続する方法を学習できます。

MongoDBデプロイに接続するには、次の 2 つのものが必要です。

  • 接続 URI は、接続文字列とも呼ばれます。これは、接続するMongoDBデプロイをGoドライバーに指示します。

  • MongoClientオブジェクト。 への接続を作成し、 MongoDBデプロイで操作を実行します。

options.Client() を使用して、 MongoDBに接続中のGoドライバーの動作をカスタマイズできます。

標準の接続stringには次のコンポーネントが含まれます。

コンポーネント
説明

mongodb://

必須: これを標準接続形式の文字列として識別するプレフィックス。

username:password

任意。認証資格情報。これらを含めると、クライアントはauthSource で指定されたデータベースに対してユーザーを認証します。authSource 接続オプションの詳細については、接続のトラブルシューティングガイドを参照してください。

host[:port]

必須。 MongoDB が実行されているホストとオプションのポート番号。 ポート番号を指定しない場合、ドライバーはデフォルトのポート27017を使用します。

/defaultauthdb

任意。接続文字列に username:password@認証情報が含まれている一方で、authSource オプションが含まれていない場合に使用する認証データベース。 引数なしで client.db() を呼び出すと、これは使用されるデータベースになります。このコンポーネントを含めない場合、クライアントはadminデータベースに対してユーザーを認証します。

?<options>

任意。 接続固有のオプションを <name>=<value> ペアとして指定するクエリstringです。 これらのオプションの詳細については、「接続オプションの指定 」を参照してください。

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 に接続するには、クライアントを作成する必要があります。クライアントが接続を管理し、データベースコマンドを実行します。

ClientOptions オブジェクトを Connect() メソッドに渡すことで、接続文字列とその他のクライアント オプションを使用するクライアントを作成できます。

接続 URI を指定するには、それを ApplyURI() メソッドに渡します。これにより、新しい ClientOptionsインスタンスが返されます。その他のオプションを設定するには、オプションパッケージから関連するヘルパーメソッドを呼び出します。

Tip

接続プールでクライアントを再利用する

接続プールを使用して、クライアントを複数のセッションやオペレーションで再利用することをお勧めします。毎回新しいインスタンスを 1 つ作成するのではなく、同じ Clientインスタンスを使用して複数のタスクを実行できます。Client 型は複数の goroutine によって安全に同時使用できます。ドライバーで接続プールがどのように機能するかについて詳しくは、 接続プールガイド を参照してください。

接続オプションの詳細については、接続オプションセクションを参照してください。クライアントの作成の詳細については、クライアントおよび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 ドキュメントを参照してください。

戻る

接続

項目一覧