sql >> Databasteknik >  >> NoSQL >> MongoDB

MongoDB-hanteringsfel vid insättning i Java

Du måste ta en titt på "WriteConcern ", den har alla beteenden du behöver.

Du kan använda den per en skrivning så här:

coll.insert(dbObj, WriteConcern.SAFE);

Om du använder WriteConcern.SAFE kommer din operation att vänta på en bekräftelse från den primära servern, så om inget undantag görs så är du okej.

Eller så kan du ställa in standardbeteende för alla skrivoperationer när du skapar MongoClient:

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

[Baserat på Colin Morellis kommentar] Om du inte använder en WriteConcern som ger upphov till undantag kan du använda WriteResult.getLastError() för att avgöra om den lyckades eller inte. På liknande sätt, om du använder WriteConcern.SAFE och skrivningen lyckas, kommer WriteResult att ha användbar information om det, såsom antalet poster som skrevs.

Här kan du läsa om WriteConcern i allmänt .




  1. Vad är NameNode Automatic Failover i Hadoop HDFS?

  2. Hur tar man bort inbäddat schemadokument i mongoose?

  3. MongoDB:kan inte använda en markör för att iterera genom all data

  4. Är redis på Heroku möjligt utan ett tillägg?