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

MongoDB che gestisce l'errore di inserimento in Java

Devi dare un'occhiata a "WriteConcern ", ha tutti i comportamenti di cui hai bisogno.

Puoi usarlo per una scrittura così:

coll.insert(dbObj, WriteConcern.SAFE);

Se usi WriteConcern.SAFE, la tua operazione attenderà un riconoscimento dal server primario, quindi se non viene sollevata alcuna eccezione, allora sei a posto.

Oppure puoi impostare un comportamento predefinito per tutte le operazioni di scrittura quando crei MongoClient:

MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
builder.writeConcern(WriteConcern.JOURNAL_SAFE);
MongoClient mongoClient = new MongoClient(
    new ServerAddress("localhost"), builder.build());

[Basato sul commento di Colin Morelli] Se non utilizzi un WriteConcern che solleva eccezioni, puoi utilizzare WriteResult.getLastError() per determinare se ha avuto successo o meno. Allo stesso modo, se usi WriteConcern.SAFE e la scrittura riesce, WriteResult avrà informazioni utili su di esso come il numero di record che sono stati scritti.

Qui puoi leggere su WriteConcern in general .