書込み保証 (write concern)
項目一覧
Overview
このガイドでは、 Java Reactive Streams ドライバーを使用して書込み保証 ( 書込み保証 (write concern)) を指定する方法を学習します。 書込み保証 は書き込み操作に対してMongoDBから要求される確認応答のレベルを表します。
書込み保証 (write concern) は、次のレベルで構成できます。
MongoDBデプロイの場合
データベース用
コレクション用
配置レベルでの書込み保証 (write concern) の構成
配置レベルで次の方法で書込み保証 ( 書込み保証 (write concern) ) を構成できます。
次のコードに示すように、
MongoClientSettings
インスタンスを作成します。MongoClient mongoClient = MongoClients.create(MongoClientSettings.builder() .applyConnectionString(new ConnectionString("mongodb://host1,host2")) .writeConcern(WriteConcern.MAJORITY) .build()); 次のコードに示すように、
ConnectionString
インスタンスを作成します。MongoClient mongoClient = MongoClients.create("mongodb://host1:27017,host2:27017/?w=majority");
データベースまたはコレクションレベルでの書込み保証 (write concern) の構成
データベースまたはコレクションレベルで書込み保証 ( 書込み保証 (write concern) ) は、次の方法で構成できます。
次のコードに示すように、
withWriteConcern()
メソッドを使用してMongoDatabase
で を実行します。MongoDatabase database = mongoClient.getDatabase("test").withWriteConcern(WriteConcern.MAJORITY); 次のコードに示すように、
withWriteConcern()
メソッドを使用してMongoCollection
で を実行します。MongoCollection<Document> collection = database .getCollection("restaurants") .withWriteConcern(WriteConcern.MAJORITY);
MongoDatabase
とMongoCollection
インスタンスは不変です。 既存のMongoDatabase
またはMongoCollection
インスタンスでwithWriteConcern()
を呼び出すと、新しい インスタンスが返されますが、メソッドが呼び出されるインスタンスには影響しません。
次の例では、 collWithWriteConcern
インスタンスの書込み保証(write concern)はmajority
ですが、 collection
の読み込み設定(read preference)は影響を受けません。
MongoCollection<Document> collWithWriteConcern = collection .withWriteConcern(WriteConcern.MAJORITY);
読み取り保証、読み込み設定 (read preference)、書込み保証 (write concern) の組み合わせ
MongoClientSettings
、 MongoDatabase
、またはMongoCollection
インスタンスをビルドすると、読み取り保証、読み込み設定(read preference)、書込み保証(write concern)の組み合わせを含めることができます。
たとえば、次のコードでは、コレクション レベルで 3 つすべてを設定します。
Collection = database.getCollection("restaurants") .withReadPreference(ReadPreference.primary()) .withReadConcern(ReadConcern.MAJORITY) .withWriteConcern(WriteConcern.MAJORITY);
詳細情報
書込み保証(write concern)の詳細については、 MongoDB Serverマニュアルの書込み保証(write concern)ガイドを参照してください。