Docs Menu
Docs Home
/ / /
Java Reactive Streams ドライバー
/

読み込み設定 (read preference)

項目一覧

  • Overview
  • 配置レベルでの読み込み設定(read preference)の構成
  • データベースまたはコレクション レベルでの読み込み設定(read preference)の構成
  • 配置レベルでの読み取り保証の構成
  • データベースまたはコレクション レベルでの読み取り保証の構成
  • 読み取り保証、読み込み設定 (read preference)、書込み保証 (write concern) の組み合わせ
  • 詳細情報

レプリカセットのどのノードから読み取るかを選択するには、 Java Reactive Streams ドライバーを使用して読み込み設定 (read preference) を構成します。 さらに、読み取り保証を構成することで、レプリカセットやシャーディングされたクラスターから読み取られたデータの整合性と分離プロパティを制御できます。 このガイドでは、 MongoDB Java Reactive Streams ドライバーを使用して 読み込み設定 (read preference) と読み取り保証 (read concern) を構成する方法を学習できます。

読み込み設定( 読み込み設定 (read preference) )と読み取り保証( 読み取り保証 (read concern) )は、次のレベルで構成できます。

  • MongoDBデプロイの場合

  • データベース用

  • コレクション用

配置レベルで次の方法で読み込み設定( 読み込み設定 (read preference) )を構成できます。

  • 次のコードに示すように、 MongoClientSettingsインスタンスを作成します。

    MongoClient mongoClient = MongoClients.create(MongoClientSettings.builder()
    .applyConnectionString(new ConnectionString("mongodb://host1,host2"))
    .readPreference(ReadPreference.secondary())
    .build());
  • 次のコードに示すように、 ConnectionStringインスタンスを作成します。

    MongoClient mongoClient =
    MongoClients.create("mongodb://host1:27017,host2:27017/?readPreference=secondary");

読み込み設定( 読み込み設定 (read preference) )は、データベースまたはコレクションレベルで次の方法で構成できます。

  • 次のコードに示すように、 withReadPreference()メソッドを使用してMongoDatabaseで を実行します。

    MongoDatabase database = mongoClient.getDatabase("test")
    .withReadPreference(ReadPreference.secondary());
  • 次のコードに示すように、 withReadPreference()メソッドを使用してMongoCollectionで を実行します。

    MongoCollection<Document> collection = database.getCollection("restaurants")
    .withReadPreference(ReadPreference.secondary());

MongoDatabaseMongoCollectionインスタンスは不変です。 既存のMongoDatabaseまたはMongoCollectionインスタンスでwithReadPreference()を呼び出すと、新しい インスタンスが返されますが、メソッドが呼び出されるインスタンスには影響しません。

次の例では、 collectionWithReadPrefインスタンスの読み込み設定( 読み込み設定 (read preference) )はprimaryPreferredで、 collectionの読み込み設定( 読み込み設定 (read preference) )は影響を受けません。

MongoCollection<Document> collectionWithReadPref = collection.withReadPreference(ReadPreference.primaryPreferred());

配置レベルで次の方法で読み取り保証 (read concern)を構成できます。

  • 次のコードに示すように、 MongoClientSettingsインスタンスを作成します。

    MongoClient mongoClient = MongoClients.create(MongoClientSettings.builder()
    .applyConnectionString(new ConnectionString("mongodb://host1,host2"))
    .readConcern(ReadConcern.MAJORITY)
    .build());
  • 次のコードに示すように、 ConnectionStringインスタンスを作成します。

    MongoClient mongoClient =
    MongoClients.create("mongodb://host1:27017,host2:27017/?readConcernLevel=majority");

読み取り保証 (read concern)は、データベースまたはコレクションレベルで次の方法で構成できます。

  • 次のコードに示すように、 withReadConcern()メソッドを使用してMongoDatabaseで を実行します。

    MongoDatabase database = mongoClient.getDatabase("test")
    .withReadConcern(ReadConcern.MAJORITY);
  • 次のコードに示すように、 withReadConcern()メソッドを使用してMongoCollectionで を実行します。

    MongoCollection<Document> collection = database.getCollection("restaurants")
    .withReadConcern(ReadConcern.MAJORITY);

MongoDatabaseMongoCollectionインスタンスは不変です。 既存のMongoDatabaseまたはMongoCollectionインスタンスでwithReadConcern()を呼び出すと、新しい インスタンスが返されますが、メソッドが呼び出されるインスタンスには影響しません。

次の例では、 collWithReadConcernインスタンスにはAVAILABLEの読み取り保証がありますが、 collectionの読み取り保証には影響がありません。

MongoCollection<Document> collWithReadConcern =
collection.withReadConcern(ReadConcern.AVAILABLE);

MongoClientSettingsMongoDatabase 、またはMongoCollectionインスタンスをビルドすると、読み取り保証、読み込み設定(read preference)、書込み保証(write concern)の組み合わせを含めることができます。

たとえば、次のコードでは、コレクション レベルで 3 つすべてを設定します。

collection = database.getCollection("restaurants")
.withReadPreference(ReadPreference.primary())
.withReadConcern(ReadConcern.MAJORITY)
.withWriteConcern(WriteConcern.MAJORITY);

読み込み設定( 読み込み設定 (read preference) ) の詳細については、 MongoDB Serverマニュアルの読み込み設定(read preference)ガイドを参照してください。 読み取り保証 ( 読み取り保証 (read concern) ) の詳細については、 MongoDB Serverマニュアルの「読み取り保証 (read concern) 」のガイドを参照してください。

戻る

データカーソル