對於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