データベースとコレクション
項目一覧
Overview
このガイドでは、MongoDB Java ドライバーで MongoDB の データベース と コレクション を使用する方法を学習できます。
MongoDB では、データは次のレベルの階層に整理されています。
Databases
コレクション
ドキュメント
データベースは、MongoDB インスタンスの最上位のデータ組織です。 データベースは、ドキュメントを含むコレクションに整理されています。 ドキュメントには、文字列、数値、日付などのリテラル データと、その他の(埋め込み)ドキュメントが含まれます。 ドキュメント フィールドの型と構造の詳細については、 ドキュメントのサーバードキュメントを参照してください。
データベースへのアクセス
MongoDBインスタンス内の にアクセスするには、 インスタンスの getDatabase() メソッドを使用します。MongoClient
MongoDatabase
次の例では、「 TestDatabase 」という名前のデータベースにアクセスします。
MongoDatabase database = mongoClient.getDatabase("testDatabase");
コレクションにアクセスする
getCollection() メソッド MongoDatabase
を使用するMongoCollection
インスタンスのメソッドを使用して、接続された MongoDB インスタンスのデータベース内の にアクセスします。
次の例えではMongoDatabase
から「 TestCollection 」という名前のコレクションにアクセスします。
MongoDatabase database = mongoClient.getDatabase("testDatabase"); MongoCollection<Document> collection = database.getCollection("testCollection");
Tip
指定されたコレクション名がデータベースにまだ存在しない場合、MongoDB は最初にそのコレクションにデータを挿入する際に、暗黙的にコレクションを作成します。
コレクションを作成する
createCollection() メソッド を使用するMongoDatabase
インスタンスのメソッドを使用して、接続された MongoDB インスタンスのデータベースにコレクションを作成します。
次の例では、「exampleCollection」というコレクションを作成します。
database.createCollection("exampleCollection");
CreateCollectionOptions を使用して、最大サイズやドキュメント検証ルールなどのコレクション オプションを指定できます クラス。createCollection()
メソッドは、 CreateCollectionOptions
のインスタンスを任意の 2 つ目のパラメータとして受け入れます。
ドキュメントの検証
ドキュメント検証機能は、コレクションへの書込み中に一連のフィルターに対してドキュメントを検証する機能を提供します。 You can specify these filters using the ValidationOptions class, which accepts a series of Filters that specifies the validation rules and expressions:
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();
警告
コレクションを削除すると、コレクション内のすべてのデータが削除されます
データベースからコレクションを削除すると、そのコレクション内のすべてのドキュメントと、そのコレクションのすべてのインデックスも永続的に削除されます。 不要になったデータを含むコレクションのみを削除します。
読み込み設定(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
MongoDatabase
MongoCollection
メソッドは、優先順位または保証を持つ または の新しいインスタンスを作成します。メソッドが呼び出されるMongoDatabase
またはMongoCollection
は、元の優先設定と保証設定を保持します。
詳細については、 読み込み設定( read preference ) 、 読み取り保証( read concern ) 、 書込み保証( write concern) に関するサーバーのドキュメントを参照してください。