2017-09-01 1 views
0

Ich muss ein ganzes existierendes Dokument von mongodb aus Java ersetzen, anstatt jedes Feld zu setzen. Gibt es einen Weg? Ich benutze Mongo Morphium.Gibt es eine Möglichkeit, das ganze Dokument von mongoDB mit mongoDB morphia aus Java zu aktualisieren/ersetzen?

Im Moment bin ich Einstellung Felder eins nach dem anderen, finden Sie den Code ein:

DBObject searchObject =new BasicDBObject(); 

searchObject.put("procId", procId); 

final UpdateOperations<Timesheet> updateOperations = ds.createUpdateOperations(Timesheet.class) 

.set("wheelInTime", timesheet.getWheelInTime()) 

.set("wheelOutTime", timesheet.getWheelOutTime()) 

.set("tableOnTime", timesheet.getTableOnTime()) 

.set("tableOffTime", timesheet.getTableOffTime()) 

final UpdateResults results = ds.updateFirst(findQuery,updateOperations); 

Antwort

0

Sie können ‚überschreiben‘ einen Eintrag in einer MongoDB Sammlung, sondern einfach eine neue DBObject mit dem gleichen _id Feld zu erzeugen und sie zu speichern zur Datenbank. Setzen Sie einfach die Felder in Ihrem Objekt wie jedes andere Java-Objekt und verwenden Sie myCollection.save (obj)

0

Speichern Sie das Objekt und es wird das Dokument mit der gleichen @id überschreiben. Dies kann mit einer Codezeile erfolgen:

dao.save(timesheet); 

vollständigeres Beispiel-Code der Nutzung des Morphia DAO:

class Dao extends BasicDAO<TimeSheet, String> { 
    Dao(Datastore ds) { 
    super(TimeSheet.class, ds); 
    } 
} 

Datastore ds = morphia.createDatastore(mongoClient, DB_NAME); 
Dao dao = new Dao(ds); 

dao.save(timesheet); 
Verwandte Themen