Overview
このガイドでは、 Goドライバーを使用してMongoDB のデータベースとコレクションを操作する方法を学習できます。
MongoDB では、データは次のレベルの階層に整理されています。
データベース: コレクションを保存するMongoDBデプロイの最上位のデータ構造。
コレクション: MongoDBドキュメントのグループ。 関係データベースのテーブルに類似しています。
ドキュメント : 文字列、数値、日付などのリテラル データを保存するユニット。およびその他の埋め込みドキュメントを保存するユニット。ドキュメントフィールドのタイプと構造の詳細については、 MongoDB Serverマニュアルの ドキュメント のエントリを参照してください。
データベースへのアクセス
Client
インスタンスで Database()
メソッドを使用してデータベースにアクセスできます。
次の例えではtest_database
という名前のデータベースにアクセスします。
database := client.Database("test_database")
コレクションにアクセスする
Database
インスタンスで Collection()
メソッドを使用してコレクションにアクセスできます。
次の例では、 test_collection
という名前のコレクションにアクセスします。
collection := database.Collection("test_collection")
Tip
指定されたコレクション名がデータベースにまだ存在しない場合、MongoDB は最初にデータを挿入するときに暗黙的にコレクションを作成します。
コレクションを作成する
コレクションを明示的に作成するには 、Database
インスタンスで CreateCollection()
メソッドを使用します。
次の例では、 example_collection
という名前のコレクションを作成します。
err = database.CreateCollection(context.TODO(), "example_collection") if err != nil { log.Fatalf("Failed to create collection: %v", err) }
最大サイズやドキュメント検証ルールなどのコレクションオプションを指定するには、Database
インスタンスの CreateCollection()
メソッドに options.CreateCollectionOptions
構造体を渡します。オプションのパラメーターの完全なリストについては、 MongoDB Serverマニュアルの create コマンド エントリを参照してください。
コレクションの一覧を取得する
Database
インスタンスで ListCollections()
メソッドを使用すると、データベース内のコレクションのリストをクエリできます。
次の例では、データベース内のすべてのコレクションのリストを取得し、コレクション名をコンソールに出力します。
cursor, err := database.ListCollections(context.TODO(), bson.D{}) if err != nil { log.Fatalf("Failed to list collections: %v", err) } defer cursor.Close(context.TODO()) for cursor.Next(context.TODO()) { var collectionInfo bson.M if err := cursor.Decode(&collectionInfo); err != nil { log.Fatalf("Failed to decode collection info: %v", err) } if name, ok := collectionInfo["name"].(string); ok { fmt.Println(name) } else { log.Println("Collection name not found or not a string") } } if err := cursor.Err(); err != nil { log.Fatalf("Cursor error: %v", err) }
コレクションの削除
コレクションを削除するには、 Database
インスタンスで Drop()
メソッドを使用します。
次の例では、test_collection
という名前のコレクションを削除します。
err = database.Collection("test_collection").Drop(context.TODO()) if err != nil { log.Fatalf("Failed to drop collection: %v", err) }
警告
コレクションを削除すると、コレクション内のすべてのデータが削除されます
データベースからコレクションを削除すると、そのコレクション内のすべてのドキュメントとすべてのインデックスが永続的に削除されます。
そのコレクション内のデータが不要になった場合にのみ、コレクションを削除します 。
API ドキュメント
このガイドで説明した型やメソッドの詳細については、次の API ドキュメントを参照してください。