ऐसा इसलिए है क्योंकि collection.withWriteConcern(WriteConcern.UNACKNOWLEDGED);
एक नया MongoCollection
उत्पन्न करता है एक अलग लेखन चिंता वाली वस्तु जिसका आप कभी भी उपयोग नहीं करते हैं:
निम्नलिखित कोड:
MongoCollection<Document> dup = collection.withWriteConcern(WriteConcern.UNACKNOWLEDGED);
...
dup.insertOne(doc);
काम करना चाहिए, यानी कोई त्रुटि नहीं उठाई गई।
MongoClient
. के लिए स्तर लेखन चिंता जो डेटाबेस के लिए प्रचारित नहीं है:
public MongoDatabase getDatabase(final String databaseName) {
MongoClientOptions clientOptions = getMongoClientOptions();
return new MongoDatabaseImpl(databaseName, clientOptions.getCodecRegistry(), clientOptions.getReadPreference(),
clientOptions.getWriteConcern(), createOperationExecutor());
}
जैसा कि आप देख सकते हैं, लेखन चिंता MongoClientOptions
. से ली गई है mongoClient.setWriteConcern()
को दिए गए पैरामीटर मान को अनदेखा करना विधि, जो एक बग हो सकता है।
इसलिए, वैश्विक लेखन चिंता को ठीक से सेट करने के लिए, आपको MongoClientOptions
का एक उदाहरण बनाना होगा :
MongoClientOptions options = MongoClientOptions
.builder()
.writeConcern(WriteConcern.UNACKNOWLEDGED)
.build();
और इसे MongoClient
को पास करें कंस्ट्रक्टर।