AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。

Goの利用開始

このガイドでは、MongoDB Go Driver を使用して MongoDB Atlas クラスターに接続するアプリケーションを作成する方法について説明します。別のドライバーまたはプログラミング言語を使用して MongoDB に接続する場合は、公式 MongoDB ドライバーのリストを参照してください。

Go ドライバーを使用すると、Go アプリケーションから MongoDB クラスターに接続して通信できます。

MongoDB Atlas は、MongoDB クラスターでデータをホストする完全管理クラウドデータベース サービスです。このガイドでは、独自の無料クラスター(クレジットカードは不要)を開始する方法を説明します。

Go アプリケーションを MongoDB Atlas クラスターに接続するには、以下の手順に従います。

1

次のコマンドに示すように、新しいディレクトリを作成し、go mod を使用してプロジェクトを初期化します。

mkdir go-quickstartcd go-quickstartgo mod init go-quickstart
2

Go ドライバーを依存関係として追加するには、次のコマンドに示すように、go get を使用します。

go get go.mongodb.org/mongo-driver/v2/mongo

MongoDB Atlas で無料のクラスターを作成して、データを保存および管理できます。MongoDB Atlas は、クラウドで MongoDB データベースをホストし、管理します。

1

MongoDB の使用開始ガイドを完了して、新しい Atlas アカウント、無料階層の MongoDB クラスターを作成し、データセットをロードして、データと交流します。

2

データベースユーザーを作成したら、そのユーザーのユーザー名とパスワードを安全な場所に保存して、後の手順で使用します。

これらの手順を完了すると、Atlas に新しい MongoDB クラスターが配置され、新しいデータベースユーザーが作成され、クラスターにサンプル データセットがロードされます。

MongoDB配置に接続するには、 接続string とも呼ばれる 接続 URIMongoDB を提供します。これは、 配置に接続する方法と接続中の動作をドライバーに指示します。

接続stringには、配置のホスト名またはIPアドレスとポート、認証メカニズム、ユーザー認証情報(該当する場合)、および接続オプションが含まれます。

1

前のセクションで作成した配置の接続文字列を検索するには、Atlas アカウントにログインし、Database セクションの下の Clusters ページに移動します。新しい配置で Connect ボタンをクリックします。

Atlas UI のクラスター セクションの接続ボタン

データベースユーザーをまだ設定していない場合、 MongoDB は新しいユーザーを作成して設定するように要求します。

Connect to your application の下の [Drivers ボタンをクリックし、Driver 選択メニューと Version 選択メニューからインストールしたバージョンに最適化されたバージョンから [Go] を選択します。

接続文字列のみを表示するには、View full code sample オプションが選択されていないことを確認します。

2

次のスクリーンショットに示すように、接続stringの右側にある ボタンをクリックして、クリップボードにコピーします。

UI の接続 コピーstring ボタンAtlas
3

この接続文字列をテキストエディタのファイルに貼り付け、<db_password> プレースホルダーをデータベースユーザーのパスワードに置き換えます。接続文字列には、すでにデータベースユーザーのユーザー名が入力されています。

このファイルを安全な場所に保存して、次の手順で使用します。

これらの手順を完了すると、Atlas クラスターに対応する接続文字列が得られます。

MongoDB Goドライバーを使用して接続オプションを適用して Atlas に接続する方法の詳細については、Atlas ドライバー接続ガイド を参照してください。

1

ターミナルで次のコマンドを実行し、MONGODB_URI という環境変数を作成して、Atlas 接続文字列をその値として設定します。

export MONGODB_URI='<your atlas connection string>'

注意

接続文字列の <db_password> セクションを、atlasAdmin 権限を持つユーザー用に作成したパスワードに置き換えてください。

2

プロジェクトのベース ディレクトリから次のコマンドを実行して、main.go という新しいファイルを作成します。

touch main.go
3

以下のコードをコピーして、main.go ファイルに貼り付けます。このコードは、MongoDB Atlas のサンプル データセットに対してクエリを実行します。

package main import ( "context" "encoding/json" "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() { uri := os.Getenv("MONGODB_URI") docs := "www.mongodb.com/ja-jp/docs/drivers/go/current/" if uri == "" { log.Fatal("Set your 'MONGODB_URI' environment variable. " + "See: " + docs + "usage-examples/#environment-variable") } client, err := mongo.Connect(options.Client(). ApplyURI(uri)) if err != nil { panic(err) } defer func() { if err := client.Disconnect(context.TODO()); err != nil { panic(err) } }() coll := client.Database("sample_mflix").Collection("movies") title := "Back to the Future" var result bson.M err = coll.FindOne(context.TODO(), bson.M{"title": title}). Decode(&result) if err == mongo.ErrNoDocuments { fmt.Printf("No document was found with the title %s\n", title) return } if err != nil { panic(err) } jsonData, err := json.MarshalIndent(result, "", " ") if err != nil { panic(err) } fmt.Printf("%s\n", jsonData)}
4

コマンドラインから次のコマンドを使用してサンプル コードを実行します。

go run main.go

main.go を実行すると、サンプル データセットから次のような映画の詳細が出力されます。

{ "_id": "...", "genres": [ "Adventure", "Comedy", "Sci-Fi" ], "plot": "A young man is accidentally sent 30 years into the past...", "title": "Back to the Future"}

Tip

出力がまったくないかエラーが表示される場合は、環境変数が正しく設定されているかどうか、およびクラスターにサンプル データセットがロードされていることを確認してください。

これらの手順を完了すると、MongoDB Go ドライバーを使用して MongoDB クラスターに接続し、サンプル データに対してクエリを実行し、結果を出力するアプリケーションが作成されます。

CRUD操作セクションでは、 MongoDB Goドライバーを使用してデータを読み取って変更する方法を学びます。