2015-11-23 2 views
6

Ich speichere mein Dokument in MongoDb und verwende die Methode save mit Klasse, Sammlungsname param.Wie würden wir wissen, ob das Dokument nach der save() Methode in Mongodb gespeichert wurde?

Alle Methoden zum Speichern und Einfügen sind void Rückgabetyp. dann, wie ich wissen kann, dass mein Dokument gespeichert wurde oder nicht.

Ist es, dass ich neu abfragen muss, um zu überprüfen, ob mein Dokument gespeichert wurde. Ich brauche nur einen Rückgabewert, um zu sehen, ob es gespeichert wurde.

Außerdem verwende ich Spring Data für Mongo, um Operationen durchzuführen.

Antwort

3

Es hängt davon ab, was WriteConcern Sie verwenden. Wenn Sie WriteConcern.ACKNOWLEDGED, verwenden, wartet der Vorgang auf eine Bestätigung vom primären Server. Wenn keine Ausnahme ausgelöst wird, wurde der Datensatz ordnungsgemäß gespeichert. Andernfalls sollten Sie in der Lage sein WriteResult

WriteResult writeResult=mycollection.insert(record); 
if (writeResult.getError() != null) { 
    throw new Exception(String.format("Insertion wasn't successful: %s",writeResult)); 
} 
+3

WriteConcern.SAFE ist veraltet und Sie sollten WriteConcern.ACKNOWLEDGED jetzt verwenden: http://api.mongodb.org/java/current/com/mongodb/WriteConcern.html#SAFE http: //api.mongodb. org/java/current/com/mongodb/WriteConcern.html # ACKNOWLEDGED jetzt. – DrunkenPope

+1

Danke, aktualisiert meine Antwort, um dies zu reflektieren. – Jaco

2

org.springframework.data.mongodb.repository.MongoRepository

gibt eine Liste der gespeicherten Objekte abfragen:

<S extends T> List<S> save(Iterable<S> entites); 

oder in

CrudRepository 

Sie haben

<S extends T> S save(S entity); 

, die das gespeicherte Objekt bereitstellt. Dieses Objekt hat ein beliebiges Feld, das Sie mit @Id mit einem Wert versehen haben, der anders als null ausgefüllt ist, nachdem es erfolgreich persistiert wurde.

Verwandte Themen