我需要从java替换mongodb的整个现有文档,而不是设置每个字段。有什么办法吗?我正在使用mongo morphia。
现在我一个接一个地设置字段,下面是代码:
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 :(得分:0)
您可以'覆盖'MongoDB集合中的任何条目,只需创建一个具有相同_id字段的新DbObject并将其保存到数据库中。因此,只需像设置任何Java对象一样设置对象中的字段并使用myCollection.save(obj)
答案 1 :(得分:0)
只需保存对象,它将使用相同的@id覆盖文档。这可以通过一行代码完成:
dao.save(timesheet);
使用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);