sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB java klientens WriteConcern virker ikke

Det er fordi collection.withWriteConcern(WriteConcern.UNACKNOWLEDGED); genererer en ny MongoCollection objekt med en anden skrivebekymring, som du aldrig bruger:

Følgende kode:

MongoCollection<Document> dup = collection.withWriteConcern(WriteConcern.UNACKNOWLEDGED);
...
dup.insertOne(doc);

burde virke, dvs. ingen fejl opstår.

Hvad angår MongoClient niveau skrive bekymring, som ikke udbredes til databasen:

public MongoDatabase getDatabase(final String databaseName) {
    MongoClientOptions clientOptions = getMongoClientOptions();
    return new MongoDatabaseImpl(databaseName, clientOptions.getCodecRegistry(), clientOptions.getReadPreference(),
            clientOptions.getWriteConcern(), createOperationExecutor());
}

Som du kan se, er skriveproblemet taget fra MongoClientOptions ignorerer parameterværdien, der er sendt til mongoClient.setWriteConcern() metode, som kan være en fejl.

Så for at indstille et globalt skriveproblem korrekt, skal du oprette en forekomst af MongoClientOptions :

 MongoClientOptions options = MongoClientOptions
     .builder()
     .writeConcern(WriteConcern.UNACKNOWLEDGED)
     .build();

og send den til MongoClient konstruktør.



  1. Hent ObjectIdHex-værdi fra mgo-forespørgsel

  2. MongoDB starter ikke efter servernedbrud

  3. MongoDB Aggregate - Forespørgsel for at få det seneste element i gruppen

  4. Kan redis-nøglepladsmeddelelser skubbes til redis-strømmen i stedet for pub/underkanal