使用 Mongodb 与 Morphia 确实很陌生,并且看到了许多如何执行此操作的高级答案。
如果可能的话我想做简单的并且我有这个@Embedded
对象称为
fileObjects
其中包含Files
对象。
我无法更新里面的字段Files
.
我只想更新一个字段 f.exString fileHash
.
@Entity
public class BatchData {
@Id private ObjectId id;
@Embedded
public ArrayList<Files> fileObjects = new ArrayList<Files>();
}
UPDATE..阅读维基百科吗啡更新 http://code.google.com/p/morphia/wiki/Updating仅当数组包含时才“真正”说出如何执行此操作Integer
像这样:
@Embedded
List<Integer> roomNumbers = new ArrayList<Integer>();
这是我到目前为止所尝试的:
mongo.createUpdateOperations(BatchData.class).add("fileObjects", Files, false);
The 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;
}
}
阅读其他答案,例如吗啡-mongodb-访问 https://stackoverflow.com/questions/8884813/morphia-mongodb-accessing-embedding-object-from-an-embedded-object但他已经拥有了
@Entity BlogEntry(参见链接)位于 mongo 外部的 POJO 中。也许我也必须这样做?
拉出来,改一下,再保存回来?