0
私は私が変更されたフィールドのみを更新する更新を記述する必要があり、このMongoDB Morphia。
{
"id":"1090",
"title" : "My User",
"description" : "First User",
"country" : "US",
"state" : "FL",
"city" : "Miam"
"auth" : "Scott"
}
のようなJSONからの応答を取得するだけで新しいフィールドではなく、古いフィールドを更新します。
更新JSONは
{
"id":"1090",
"title" : "New User",
"description" : "First User",
"country" : "US",
"state" : "Texas",
"city" : "Dallas"
"auth" : "Scott"}
ように私は、私は上記のようにUpdateOperationsを書きたくない
Blog blogDB=datastore.find(Blog.class, "blog_ID", blog.getBlog_ID()).get();
Query<Blog> query = datastore.createQuery(Blog.class).field("_id").equal(blogDB.getId()); //Find the object that is in database
UpdateOperations<Blog> ops = datastore.createUpdateOperations(Blog.class).set("title", blog.getcountry()).set("country", blog.getcity()).set("city", ....
datastore.update(query, ops);
の下に使用して達成することができます見えます。それ以上の効率的な方法はありますか?
evanchooly、あなたはすべてのset(field1).set(field2).set(field3)... set(fieldn)を書く必要があることを意味します。それにもかかわらず、データベース文書のすべてのフィールドのチェーンとしてJSONファイルから来る新しいデータか既存のデータか? –
はい、新しい/変更されたフィールドをデータベースに永続化したい場合のみです。 – evanchooly
ちょっとエヴァンスクール、私が聞いている質問は、私が頼んだこととは違っています。リストリスト= datastore.find(User.class).asList();私はmongo dbに存在するすべてのユーザーを取得しなければならないサービスクラスのこのコード行を持っています。しかし何らかの理由でclassNotFoundExceptionという警告が表示されます。警告:dbObjに定義されたクラスが見つかりません: java.lang.ClassNotFoundException:com.user.model.User –