对于Morphia使用Mongodb并看到许多高级答案如何实现这一点真的很新颖。在Morphia中如何更新ArrayList中的一个嵌入对象
我希望它简单,如果这是可以做到的,我有这个@Embedded
对象调用
fileObjects
包含Files
对象。
我无法更新Files
中的字段。
我想只更新一个字段f.ex String fileHash
。
@Entity
public class BatchData {
@Id private ObjectId id;
@Embedded
public ArrayList<Files> fileObjects = new ArrayList<Files>();
}
UPDATE .. 读数Morphia Updating维基不“真”说,如何做到这一点,只有当数组包含Integer
这样的:
@Embedded
List<Integer> roomNumbers = new ArrayList<Integer>();
这是我尝试到目前为止:
mongo.createUpdateOperations(BatchData.class).add("fileObjects", Files, false);
该代码插入的Files
已经在mongo中。 false
未检测到并将其插入到数组的末尾。我可以添加一个唯一的ID到Files
,以便它检测到插入的Files
存在于数组中,然后只更新它?
@Embedded
public class Files
{
public Files() {
}
public int position;
public String fileName = "";
public String fileHash = "";
public Files(int pos, String fileName, String fileHash) {
this.position = pos;
this.fileName = fileName;
this.fileHash = fileHash;
}
}
阅读其他答案喜欢morphia-mongodb-accessing,但他已经有了
@Entity BlogEntry(见链接)蒙戈之外的POJO。也许我必须这样做?
拉出来,改变它并保存回去?
它工作得很好。 Morphia应该在本地支持它。现在我们必须禁用使用这个“$”操作符的验证。 – 2012-11-16 02:17:56