0
私は既存のドキュメントをコピーし、それに新しいobjectIDを与えて、新しく追加されたドキュメントのフィールドを更新したいと思います。mongodbドキュメントをコピーしてフィールドの値を更新する方法
現在、私はドキュメントのコレクションを取得してリストを反復し、次にinsertOneとupdateOneを使用して新しいドキュメントを挿入し、フィールド値を更新するために "find"を使用しています。しかし、更新されるフィールド値は、古いオブジェクトIDを持つドキュメントに属しているようです。そして私はフィールド値が新しいObjectIDが更新されたドキュメントに属することを望みます。
myDocList = collection.find(new Document("track", trackName));
for (Document document : myDocList) {
collection.insertOne(new Document(document));
collection.updateOne(new Document("track", trackName), new Document("$set", new Document("track", newTrackName)));
System.out.println(document);
}
は、私はあなたのコード例に従いますが、私は挿入された新しいドキュメントを見ることはできませんメートル。私はcurrentDocumentとnewDocumentのいくつかの値をチェックするためにデバッグトレースを実装しました。そして、私はnewDocumentとcurrentDocumentのSystem.out.printlnから正しいデータを持っているが、ドキュメントはdtabaseに挿入されていないことがわかります。 – bbq123
あなたはどちらの例を使用しましたか?最初の場合:_id値をクリアしてください。 'doc.put(" _ id "、null);'または 'doc.remove(" _ id ");' – shure