sql >> Databáze >  >> NoSQL >> MongoDB

WriteConcern klienta Java MongoDB nefunguje

To proto, že collection.withWriteConcern(WriteConcern.UNACKNOWLEDGED); vygeneruje novou MongoCollection objekt s jinou starostí o zápis, který nikdy nepoužíváte:

Následující kód:

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

by mělo fungovat, tj. žádná chyba.

Pokud jde o MongoClient obava o zápis úrovně, která se nešíří do databáze:

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

Jak vidíte, problém se zápisem je převzat z MongoClientOptions ignorování hodnoty parametru předané do mongoClient.setWriteConcern() metoda, což může být chyba.

Chcete-li tedy správně nastavit globální problém zápisu, budete muset vytvořit instanci MongoClientOptions :

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

a předejte jej MongoClient konstruktor.



  1. Vezmeme součet sloupce v MongoDB

  2. Jak mohu vypočítat kladnou a zápornou cenu pomocí mongodb nebo robomongo?

  3. Aktualizujte obrázek pomocí collectionfs

  4. Mongo, najdi seznam ID