Overview
このガイドでは、MongoDB Java ドライバーで MongoDB の データベース と コレクション を使用する方法を学習できます。
MongoDB では、データは次のレベルの階層に整理されています。
Databases
コレクション
ドキュメント
データベースは、MongoDB インスタンスの最上位のデータ組織です。 データベースは、ドキュメントを含むコレクションに整理されています。 ドキュメントには、文字列、数値、日付などのリテラル データと、その他の(埋め込み)ドキュメントが含まれます。 ドキュメント フィールドの型と構造の詳細については、 ドキュメントのサーバードキュメントを参照してください。
データベースへのアクセス
MongoDBインスタンス内の MongoDatabase にアクセスするには、MongoClientインスタンスの getDatabase() メソッドを使用します。
次の例えではtestDatabaseという名前のデータベースにアクセスします。
MongoDatabase database = mongoClient.getDatabase("testDatabase");
コレクションにアクセスする
MongoDatabaseインスタンスの getCollection() メソッドを使用して、接続済みのMongoDBインスタンスのデータベース内の MongoCollection にアクセスします。
次の例では、MongoDatabase から testCollection という名前のコレクションにアクセスします。
MongoDatabase database = mongoClient.getDatabase("testDatabase"); MongoCollection<Document> collection = database.getCollection("testCollection");
Tip
指定されたコレクション名がデータベースにまだ存在しない場合、MongoDB は最初にそのコレクションにデータを挿入する際に、暗黙的にコレクションを作成します。
コレクションを作成する
MongoDatabaseインスタンスの createCollection() メソッドを使用して、接続されたMongoDBインスタンスのデータベースにコレクションを作成します。
次の例では、 exampleCollectionという名前のコレクションを作成します。
database.createCollection("exampleCollection");
CreateCollectionOptionsクラスを使用して、最大サイズやドキュメント検証ルールなどのコレクションオプションを指定できます。createCollection() メソッドは、CreateCollectionOptions のインスタンスを任意の 2 つ目のパラメータとして受け入れます。
ドキュメントの検証
ドキュメント検証機能は、コレクションへの書込み中にドキュメントを一連のフィルターに対して検証する能力を提供します。これらのフィルターは、検証ルールと式を指定する一連の フィルター を受け入れるValidationOptionsクラスを使用して指定できます。
ValidationOptions collOptions = new ValidationOptions().validator( Filters.or(Filters.exists("commander"), Filters.exists("first officer"))); database.createCollection("ships", new CreateCollectionOptions().validationOptions(collOptions));
コレクションの一覧を取得する
MongoDatabase.listCollectionNames() メソッドを使用して、データベース内のコレクションのリストをクエリできます。
for (String name : database.listCollectionNames()) { System.out.println(name); }
コレクションの削除
MongoCollection.drop() メソッドを使用して、データベースからコレクションを削除できます。
MongoCollection<Document> collection = database.getCollection("bass"); collection.drop();
警告
コレクションを削除すると、コレクション内のすべてのデータが削除されます
データベースからコレクションを削除すると、そのコレクション内のすべてのドキュメントと、そのコレクションのすべてのインデックスも永続的に削除されます。 不要になったデータを含むコレクションのみを削除します。
データベースの削除
次の例に示すように、 MongoDatabase.drop() メソッドを使用して、 MongoDBインスタンスからデータベースを削除できます。
MongoDatabase database = mongoClient.getDatabase("testDatabase"); database.drop();
警告
データベースを削除すると、データベース内のすべてのデータが削除されます
データベースを削除すると、そのデータベース内のすべてのコレクション、ドキュメント、およびインデックスが 永続的に 削除されます。
データベース内のデータが不要になった場合にのみ、データベースを削除します。
読み込み設定(read preference)、読み取り保証(read concern)、書込み保証(write concern)の指定
読み込み設定(read preference ) 、 読み取り保証( read concern ) 、 書込み保証( write concern ) は、MongoDB レプリカセットに接続するときに、ドライバーが読み取り操作をルーティングして読み取りおよび書込み操作の確認を待つ方法を制御します。 読み込み設定(read preference)と読み取り保証(read concern)はすべての読み取り操作に適用されます。書込み保証 (write concern) はすべての書込み (write) 操作に適用されます。
MongoDatabase インスタンスは、書込み保証(write concern)、読み取り保証(read concern)、書込み設定(write preference)の設定を、作成に使用されるMongoClientから継承します。 MongoCollectionインスタンスは、書込み保証(write concern)、読み取り保証(read concern)、書込み設定(write preference)の設定を、作成に使用されるMongoDatabaseから継承します。 ただし、次のメソッドを使用して、通常継承する設定とは異なる読み込み設定(read preference)、読み取り保証(read concern)、または書込み保証(write concern)を持つMongoDatabaseまたはMongoCollectionのインスタンスを取得できます。
Tip
withReadConcern()withReadPreference()、 、およびwithWriteConcern MongoDatabaseMongoCollectionメソッドは、優先順位または保証を持つ または の新しいインスタンスを作成します。メソッドが呼び出されるMongoDatabaseまたはMongoCollectionは、元の優先設定と保証設定を保持します。
詳細については、 読み込み設定( read preference ) 、 読み取り保証( read concern ) 、 書込み保証( write concern) に関するサーバーのドキュメントを参照してください。