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

データベースとコレクション

このガイドでは、 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 ドキュメントを参照してください。

戻る

コンテキスト パッケージ

項目一覧