Wenn Sie WriteConcern.ACKNOWLEDGED
verwenden (was meiner Meinung nach auch SAFE
ist ) müssen Sie Ihren Code nicht mit Fehlerprüfungen verunreinigen.
Für ACKNOWLEDGED
, gibt der Treiber automatisch einen getLastError
aus Befehl automatisch und löst eine Ausnahme aus, wenn etwas schief gelaufen ist, zum Beispiel eine doppelte Indexverletzung.
Ab Version 2.10 des Java-Treibers lautet der Standardwert für Write Concern ACKNOWLEDGED
BEARBEITEN
Sie sollten dies nicht tun, aber auf jeden Fall:
Die insert
-Methode gibt tatsächlich WriteResult
zurück . Wenn es getError()
ist ist null
, alles ist in Ordnung, andernfalls wird so etwas wie E11000 duplicate key error index:...
zurückgegeben . Damit dies funktioniert, müssen Sie WriteConcern.UNACKNOWLEDGED
verwenden