MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB manipulando falha de inserção em Java


Você precisa dar uma olhada em "WriteConcern ", tem todos os comportamentos que você precisa.

Você pode usá-lo por uma gravação assim:
coll.insert(dbObj, WriteConcern.SAFE);

Se você usar WriteConcern.SAFE, sua operação aguardará uma confirmação do servidor primário, portanto, se nenhuma exceção for lançada, tudo bem.

Ou você pode definir o comportamento padrão para todas as operações de gravação quando você está criando o MongoClient:
MongoClientOptions.Builder builder = new MongoClientOptions.Builder();
builder.writeConcern(WriteConcern.JOURNAL_SAFE);
MongoClient mongoClient = new MongoClient(
    new ServerAddress("localhost"), builder.build());

[Com base no comentário de Colin Morelli] Se você não usar um WriteConcern que gera exceções, poderá usar o WriteResult.getLastError() para determinar se foi bem-sucedido ou não. Da mesma forma, se você usar WriteConcern.SAFE e a gravação for bem-sucedida, WriteResult terá informações úteis sobre ele, como o número de registros que foram gravados.

Aqui você pode ler sobre WriteConcern em geral .