对使用 Mongodb 和 Morphia 真的很陌生,并看到许多高级答案如何做到这一点。
如果可能的话,我想做简单的事情,并且我有这个包含@Embedded
对象的对象。
fileObjects
Files
我无法更新Files
.
我只想更新一个字段 f.ex String fileHash
。
@Entity
public class BatchData {
@Id private ObjectId id;
@Embedded
public ArrayList<Files> fileObjects = new ArrayList<Files>();
}
更新 ..
阅读Morphia 更新的 wiki 并没有“真的”说只有当数组包含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,但他已经
在 mongo 之外的 POJO 中拥有 @Entity BlogEntry(参见链接)。也许我也必须这样做?
把它拉出来,改变它并保存回来?