このガイドでは、MongoDB Go ドライバーを使用して MongoDB Atlas クラスターに接続するアプリケーションを作成する方法について説明します。別のドライバーまたはプログラミング言語を使用して MongoDB に接続する場合は、公式 MongoDB ドライバーのリストを参照してください。
Go ドライバーを使用すると、Go アプリケーションから MongoDB クラスターに接続して通信できます。
MongoDB Atlas は、MongoDB クラスターでデータをホストする完全管理クラウドデータベース サービスです。このガイドでは、独自の無料クラスター(クレジットカードは不要)を開始する方法を説明します。
Go アプリケーションを MongoDB Atlas クラスターに接続するには、以下の手順に従います。
プロジェクトを設定する
MongoDB クラスターを作成する
Atlasで無料階層クラスターをセットアップする
MongoDB Atlas に無料階層の MongoDB 配置を作成して、データを保存および管理することができます。MongoDB Atlas は、クラウドで MongoDB データベースをホストし、管理します。
無料階層クラスターを作成する
MongoDB の使用開始を完了します < https://www.mongodb.com/ja-jp/docs/get-started/?言語=goガイドを使用して、新しい Atlas アカウント、無料階層のMongoDBクラスターを作成し、データセットをロードして、データをやり取りします。
これらの手順を完了すると、Atlas に新しい MongoDB クラスターが配置され、新しいデータベースユーザーが作成され、クラスターにサンプル データセットがロードされます。
クラスターへの接続
MongoDB配置に接続するには、 接続string とも呼ばれる 接続 URIMongoDB を提供します。これは、 配置に接続する方法と接続中の動作をドライバーに指示します。
接続stringには、配置のホスト名またはIPアドレスとポート、認証メカニズム、ユーザー認証情報(該当する場合)、および接続オプションが含まれます。
これらの手順を完了すると、Atlas クラスターに対応する接続文字列が得られます。
MongoDB Goドライバーを使用して接続オプションを適用して Atlas に接続する方法の詳細については、Atlas ドライバー接続ガイド を参照してください。
アプリケーションから MongoDB クラスターをクエリする
Go アプリケーションを作成する
以下のコードをコピーして、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.D{{"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) }
アプリケーションを実行する
コマンドラインから次のコマンドを使用してサンプル コードを実行します。
go run main.go
main.go を実行すると、サンプル データセットから次のような映画の詳細が出力されます。
{ "_id": "573a1398f29313caabce9682", ... "title": "Back to the Future", ... }
Tip
出力がまったくないかエラーが表示される場合は、環境変数が正しく設定されているかどうか、およびクラスターにサンプル データセットがロードされていることを確認してください。
これらの手順を完了すると、MongoDB Go ドライバーを使用して MongoDB クラスターに接続し、サンプル データに対してクエリを実行し、結果を出力するアプリケーションが作成されます。
次のステップ
MongoDB Goドライバーを使用してデータを読み取って変更する方法については、「 CRUD操作」セクションを参照してください。