如何在morphia中更新嵌入对象列表?

时间:2017-01-02 05:48:41

标签: java mongodb playframework morphia

我是Morphia的新手,并尝试更新对象的现有嵌入式arrayList。这是我的班级:

@Entity
public class Student {
  @Embedded private List<Address> address;
  private String name;
  private Long id;
  ...  getter and setter .. methods
}

@Embedded
public class Address {
  private Long customId;
  private String name;
  ...  getter and setter .. methods
}
上述课程的

Json

{
 "student":{
    "address": [{
      "customId": "123456",
      "name": "Jack"
    }, {
      "customId": "78901",
      "name": "sam"
    }],
  "name": "Teacher",
  "id" : 1234567890
}

我必须更新address.name,其中address.customId78901。我试图按照Morphia文档但无法找到任何内容。

我想先用78901 address.customId删除元素,然后将数据附加到现有列表中。为了删除数据,我做了这个:

 UpdateOperations<Student> ops;
        Query<Student> updateQuery = datastore.createQuery(Student.class).filter("id", 1234567890);
        ops = datastore.createUpdateOperations(Student.class).disableValidation().removeAll("address", new BasicDBObject("customId", 78901));

上面的代码成功删除了期望的数据但我不确定如何向现有列表添加更多数据。任何帮助都会很明显。感谢

0 个答案:

没有答案