2017-09-01 42 views
0

我需要從java代替整個現有的mongodb文檔,而不是設置每個字段。是否有任何方法?我正在使用mongo morphia。有什麼方法可以使用mongoDB嗎啡更新/替換mongoDB的整個文檔?

現在我設定欄一個接一個,下面是代碼:

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); 

回答

0

可以「覆蓋」在MongoDB的集合中的任何條目,但簡單地創建具有相同_id領域的新DBOBJECT並保存到數據庫。因此,只需在您的對象中設置字段,就像您使用任何Java對象一樣,並使用myCollection.save(obj)

0

只保存對象,它將用相同的@id覆蓋文檔。

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); 
:在嗎啡DAO的用法

dao.save(timesheet); 

更完整的示例代碼:這可以通過一行代碼來完成