Я хотел бы скопировать существующий документ и предоставить ему новый идентификатор объекта, а затем обновить поле недавно добавленного документа.как скопировать документ mongodb, а затем обновить значение поля
В настоящее время я использую «найти» для получения коллекции документов и итерации списка, а затем используйте insertOne и updateOne, чтобы вставить новый документ и обновить значение поля. Но похоже, что значение поля, которое обновляется, принадлежит документу со старым идентификатором объекта. И я хочу, чтобы значение поля принадлежало документу с новым обновлением 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. И я вижу, что у меня есть правильные данные из System.out.println из newDocument и currentDocument, но документ просто не вставлен в dtabase. – bbq123
Какой из примеров вы использовали? Если сначала: затем попробуйте очистить значение _id. 'doc.put (" _ id ", null);' или 'doc.remove (" _ id ");' – shure