MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

WriteConcern на MongoDB Java клиент не работи

Това е така, защото 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 конструктор.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. пример за шардинг на mongoDB

  2. mongodb приблизително съвпадение на низове

  3. групиране по дата в заявка за mogodb без отчитане на времето

  4. Как да разреша:„MongoError:$where не е разрешено в този слой на атласа“?

  5. Изображението не се изобразява от пътя на динамичното изображение, докато се използва експресен html-pdf пакет