Docs Menu
Docs Home
/ / /
C#/.NET ドライバー
/

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

項目一覧

  • Overview
  • データベースへのアクセス
  • データベースを一覧表示する
  • データベースの削除
  • コレクションにアクセスする
  • コレクション パラメータ化
  • コレクションを作成する
  • listCollections
  • コレクションの削除
  • 詳細情報

このガイドでは、.NET/C# ドライバーを使用して MongoDB のデータベースとコレクションにアクセスおよび管理する方法を学習できます。

MongoDB では、データは階層構造で整理されています。 MongoDB 配置には 1 つ以上のデータベースが含まれ、各データベースには 1 つ以上のコレクションが含まれます。 各コレクションでは、MongoDB は、フィールドと値のペアを含むドキュメントとしてデータを保存します。

ドキュメント データ形式の詳細については、サーバー マニュアルのドキュメントを参照してください。

データベースにアクセスするには、 インスタンスから IMongoDatabaseIMongoClient インスタンスを取得します。返された IMongoDatabaseインスタンスを使用して、データベースレベルの操作を実行し、データベースに含まれるコレクションにアクセスできます。

を作成するには、IMongoDatabase GetDatabase() メソッド を呼び出します IMongoClient のメソッド インスタンス(データベース名をパラメータとして渡します)。任意の MongoDatabaseSettings を渡すこともできます データベースへのアクセス方法をカスタマイズするパラメーターとして。

存在しないデータベースの名前をGetDatabase()メソッドに渡すと、ドライバーは引き続きIMongoDatabaseインスタンスを返します。 このデータベースのコレクションにデータを挿入すると、サーバーはその時点でデータベースとコレクションを作成します。

次の例では、クライアントを作成し、 GetDatabase()メソッドを使用してtest_dbというデータベースにアクセスします。

var client = new MongoClient("<connection string>");
var myDB = mongoClient.GetDatabase("test_db");

配置のデータベースの一覧を表示するには、 インスタンスで同期 ListDatabaseNames() メソッドまたは非同期 ListDatabaseNamesAsync() IMongoClientメソッドを呼び出します。

各データベースの詳細情報を表示するには、IMongoClientインスタンスで同期ListDatabases()メソッドまたは非同期ListDatabasesAsync()メソッドを呼び出します。これらのメソッドは、サイズやデータが含まれているかどうかなど、クラスター内のデータベースを説明するフィールドを返します。

次のコードは、同期 ListDatabaseNames() メソッドまたは非同期 ListDatabaseNamesAsync() メソッドを使用して、クラスター内のデータベースの名前を一覧表示する方法を示しています。

mongoClient.ListDatabaseNames();
await mongoClient.ListDatabaseNamesAsync();

データベースを削除すると、そのデータベースのコレクション内のすべてのデータが永続的に削除されます。データベースを削除するには、同期の DropDatabase() メソッドまたは非同期の DropDatabaseAsync() メソッドを IMongoClientインスタンスの で呼び出して、データベース名をパラメータとして渡します。

次のコードは、同期 DropDatabase() メソッドまたは非同期 DropDatabaseAsync() メソッドを使用して、test_db というデータベースを削除する方法を示しています。

mongoClient.DropDatabase("test_db");
await mongoClient.DropDatabaseAsync("test_db");

警告

データベースの削除によるデータの削除

データベースを永続的に削除すると、データベースのコレクション内のすべてのドキュメントと、それらのコレクションのすべてのインデックスが永続的に削除されます。 データベースを削除した後は、そのデータにアクセスしたり、復元したりすることはできません。

IMongoCollection を取得することでコレクションにアクセスできます データベースからのインスタンス。IMongoCollectionインスタンスを使用して、データ操作を実行し、集計を作成し、インデックスを管理できます。 To retrieve an IMongoCollection, call the GetCollection() method on an IMongoDatabase instance. 任意の MongoCollectionSettings を渡すこともできます コレクションへのアクセス方法をカスタマイズするパラメーターとして。

存在しないコレクションの名前をこのメソッドに渡すと、ドライバーは引き続きIMongoCollectionインスタンスを返します。 このコレクションにデータを挿入すると、サーバーによってコレクションが作成されます。 コレクションを明示的に作成する方法については、このガイドの「 コレクションの作成 」セクションを参照してください。

この例では、 GetCollection()メソッドを使用して、 myDB変数が参照するデータベースからcoll_xyzというコレクションにアクセスします。

var myColl = myDB.GetCollection<BsonDocument>("coll_xyz");

コレクションのデータをシリアル化するデータ型を指定して、 IMongoCollectionインスタンスをパラメータ化する必要があります。 特定のタイプでパラメータ化されているIMongoCollectionインスタンスでメソッドを呼び出すと、メソッドはこのタイプのインスタンスを受け入れるか返します。

次の例は、 BsonDocument型のコレクションをパラメータ化する方法を示しています。

var collection = database.GetCollection<BsonDocument>("coll_xyz", settings);

Tip

BsonDocument型ではなく、データをモデル化するカスタムタイプでIMongoCollectionインスタンスをパラメータ化することをおすすめします。 特定のデータをモデル化する型を定義することで、繰り返しの直列化と検証を回避できます。

.NET/C# ドライバーで直列化の詳細については、 直列化に関するガイドを参照してください。

IMongoDatabaseインスタンスで同期 CreateCollection() メソッドまたは非同期 CreateCollectionAsync() メソッドを呼び出すことで、コレクションを明示的に作成できます。

このメソッドは、コレクション名と任意の CreateCollectionOptions を受け取ります 型。その後は作成されたコレクションにアクセスして、データ操作を実行し、集計を作成し、インデックスを管理できます。

次のコードは、同期 CreateCollection() メソッドまたは非同期 CreateCollectionAsync() メソッドを使用して、myDB 変数が参照するデータベース内に coll_abc というコレクションを作成する方法を示しています。

myDB.CreateCollection("coll_abc");
await myDB.CreateCollectionAsync("coll_abc");

データベース内のコレクションの一覧を表示するには、同期 ListCollectionNames() メソッドまたは非同期 ListCollectionNamesAsync() メソッドを IMongoDatabaseインスタンスで呼び出します。

各データベースの詳細情報を表示するには、IMongoDatabaseインスタンスで同期 ListCollections() メソッドまたは非同期 ListCollectionsAsync() メソッドを呼び出します。これらのメソッドは、タイプや設定など、データベース内のコレクションを説明するフィールドを返します。

次のコードは、同期 ListCollectionNames() メソッドまたは非同期 ListCollectionNamesAsync() メソッドを使用して、データベース内のコレクションの名前を一覧表示する方法を示しています。

myDB.ListCollectionNames();
await myDB.ListCollectionNamesAsync();

コレクションを削除すると、そのコレクション内のすべてのデータが永続的に削除されます。コレクションを削除するには、 インスタンスで同期 DropCollection() メソッドまたは非同期 DropCollectionAsync()IMongoCollection メソッドを呼び出します。

次のコードは、同期 DropCollection() メソッドまたは非同期 DropCollectionAsync() メソッドを使用して、coll_abc というデータベースを削除する方法を示しています。

myDB.DropCollection("coll_abc");
await myDB.DropCollectionAsync("coll_abc");

警告

コレクションを削除するとデータが削除されます

データベースからコレクションを削除すると、そのコレクション内のすべてのドキュメントとそのコレクションのすべてのインデックスが永続的に削除されます。 コレクションを削除した後は、そのデータにアクセスしたり、復元したりすることはできません。

このガイドの概念の詳細については、次のドキュメントを参照してください。

戻る

ネットワーク圧縮