2017-09-01 66 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); 

更完整的示例代码:这可以通过一行代码来完成