Jeśli używasz WriteConcern.ACKNOWLEDGED
(co moim zdaniem jest również SAFE
) nie musisz zanieczyszczać swojego kodu sprawdzaniem błędów.
Dla ACKNOWLEDGED
, sterownik automatycznie wyśle getLastError
polecenie automatycznie i zgłoś wyjątek, jeśli coś poszło nie tak, na przykład zduplikowane naruszenie indeksu.
Począwszy od wersji 2.10 sterownika Java, domyślny problem dotyczący zapisu to ACKNOWLEDGED
EDYTUJ
Nie powinieneś tego robić, ale w każdym razie:
insert
metoda rzeczywiście zwraca WriteResult
. Jeśli jest to getError()
jest null
, wszystko jest OK, w przeciwnym razie zwraca coś takiego jak E11000 duplicate key error index:...
. Aby to zadziałało, będziesz musiał użyć WriteConcern.UNACKNOWLEDGED