sql >> Database >  >> NoSQL >> MongoDB

MongoDB-verwerkingsfout van insert in Java

Je moet eens kijken naar "WriteConcern ", het heeft alle gedragingen die je nodig hebt.

Je kunt het per één schrijven . gebruiken zoals dit:

coll.insert(dbObj, WriteConcern.SAFE);

Als u WriteConcern.SAFE gebruikt, wacht uw bewerking op een bevestiging van de primaire server, dus als er geen uitzondering wordt gemaakt, bent u in orde.

Of u kunt het standaardgedrag instellen voor alle schrijfbewerkingen wanneer u MongoClient aanmaakt:

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

[Gebaseerd op de opmerking van Colin Morelli] Als u geen WriteConcern gebruikt die uitzonderingen genereert, kunt u de WriteResult.getLastError() gebruiken om te bepalen of het succesvol was of niet. Evenzo, als u WriteConcern.SAFE gebruikt en het schrijven slaagt, heeft WriteResult er nuttige informatie over, zoals het aantal records dat is geschreven.

Hier kunt u over WriteConcern lezen in algemeen .




  1. Upsert Array Elements die voldoen aan criteria in een MongoDB-document?

  2. Python + Memcached:efficiënte caching in gedistribueerde applicaties

  3. Zoek in collectie/object - SailsJS en Waterline ORM

  4. Documentdatabases:overtollige gegevens, referenties, enz. (specifiek MongoDB)