モルフィアでMongodbを使用するのは本当に初めてで、これを行う方法について多くの高度な回答を参照してください。
可能であれば簡単にしたいと思います。オブジェクトを含むこの@Embedded
オブジェクトを呼び出します。
fileObjects
Files
内のフィールドを更新できませんFiles
。
1つのフィールドf.exのみを更新したいString fileHash
。
@Entity
public class BatchData {
@Id private ObjectId id;
@Embedded
public ArrayList<Files> fileObjects = new ArrayList<Files>();
}
UPDATE .. Morphia Update
でwikiを読んで、配列に次のInteger
ようなものが含まれている場合にのみ、これを行う方法を「実際に」言ってはいけません。
@Embedded
List<Integer> roomNumbers = new ArrayList<Integer>();
これが私がこれまでに試したことです:
mongo.createUpdateOperations(BatchData.class).add("fileObjects", Files, false);
このFiles
コード挿入はすでにmongoにあります。それfalse
を検出せず、配列の最後に挿入してください。Files
配列に挿入しているものが存在することを検出するようにunique-idを追加して、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(リンクを参照)を持っています。多分私は同じことをしなければなりませんか?
引き出して変更し、保存し直しますか?