Docs Menu

Docs HomeGo

クイック スタート

項目一覧

  • プロジェクトを設定する
  • Go Modで初期化する
  • MongoDB を依存関係として追加する
  • その他の依存関係を追加する
  • MongoDB クラスターを作成する
  • Atlasで無料階層クラスターをセットアップする
  • アプリケーションから MongoDB クラスターをクエリする
  • 次のステップ

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

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

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

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

新しいディレクトリを作成し、 go modでプロジェクトを初期化します。

mkdir go-quickstart
cd go-quickstart
go mod init go-quickstart

Go ドライバーを依存関係として追加するには、 go get を使用します。

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

go get を使用して、追加の依存関係を追加します。このクイックスタートでは、godotenv パッケージを使用して環境変数から MongoDB 文字列を読み取り、ソースコード内に認証情報が埋め込まれないようにしています。

go get github.com/joho/godotenv

Go プロジェクトの依存関係を設定したら、データを保存および管理できる MongoDB クラスターを作成します。 Atlas の使用開始ガイドを完了して、新しい Atlas アカウント、無料階層の MongoDB クラスターを設定し、データセットをロードして、データをやり取りします。

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

この手順では、Go ドライバーを使用して MongoDB クラスターに接続し、サンプル データに対してクエリを実行するアプリケーションを作成して実行します。

MongoDB クラスターに接続する場所と方法に関する指示を、接続文字列と呼ばれる文字列でドライバーに渡します。この文字列には、クラスターのホスト名または IP アドレスとポート、認証メカニズム、ユーザー認証情報(該当する場合)、およびその他の接続オプションに関する情報が含まれます。

前のステップで作成したクラスターとユーザーの接続文字列を取得するには、Atlas アカウントにログインして「Database」セクションに移動し、次に示すように接続するクラスターの [Connect] ボタンをクリックします。

Atlas Connection GUI クラスター選択画面

Connect Your Application ステップに進み、[Go ドライバー] を選択します。[Copy] ボタンをクリックして、次に示すように接続文字列 をクリップボードにコピーします。

Atlas Connection GUI 接続文字列画面

Atlas 接続文字列を安全な場所に保存し、次の手順でアクセスできます。

Atlas を介して Go ドライバーに接続する方法について詳しくは、 Atlas ドライバー接続ガイド を参照し、 [言語の選択 ] ドロップダウンから [ Go ] を選択してください。

次に、プロジェクトの基本ディレクトリに、main.go というアプリケーションを格納するファイルを作成します。次のサンプル コードを使用して、MongoDB Atlas のサンプル データセットに対してクエリを実行します。

MongoDB Atlas接続文字列を使用して uri変数の値を設定するか、Atlas接続文字列を使用してMONGODB_URI という名前の環境変数を作成します。

export MONGODB_URI='<your atlas connection string>'

注意

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

package main
import (
"context"
"encoding/json"
"fmt"
"log"
"os"
"github.com/joho/godotenv"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
"go.mongodb.org/mongo-driver/mongo/options"
)
func main() {
if err := godotenv.Load(); err != nil {
log.Println("No .env file found")
}
uri := os.Getenv("MONGODB_URI")
if uri == "" {
log.Fatal("You must set your 'MONGODB_URI' environmental variable. See\n\t https://www.mongodb.com/ja-jp/docs/drivers/go/current/usage-examples/#environment-variable")
}
client, err := mongo.Connect(context.TODO(), 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",
...
}

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

Tip

出力が空の場合は、サンプル データセットがクラスターにロードされていることを確認してください。

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

基礎 CRUD ガイドで Go ドライバーを使用してデータを読み取って変更する方法、または使用例から一般的な操作を実行する方法を確認できます。

←  MongoDB Go ドライバークイック リファレンス →
フィードバックを送る
© 2022 MongoDB, Inc.

会社概要

© 2022 MongoDB, Inc.