2017-09-01 1 views
0

すべてのフィールドを設定するのではなく、mongodbの既存のドキュメント全体をjavaから置き換える必要があります。私はモンゴモフィアを使用しています。mongoDB morphiaを使ってjavaから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

なく、単に同じ_idフィールドで新しいDBOBJECTを作成し、それを保存しますデータベースに転送します。したがって、Javaオブジェクトと同じようにオブジェクトのフィールドを設定し、myCollection.save(obj)を使用します。

0

オブジェクトを保存するだけで、同じIDでドキュメントが上書きされます。これは、1行のコードで行うことができる。Morphia DAOの使用

dao.save(timesheet); 

より完全なコード例:

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); 
関連する問題