Вярвам, че това, което търсите, е $setOnInsert
за subdocument1
. Така че нещо подобно трябва да работи за вас.
Query query = Query.query(Criteria.where("_id").is("some_id"));
Update update = Update.update("_id", "some_id")
.set("field1", "value1")
.set("field2", "value2")
.set("subdocument2", subdocumentObject2)
.setOnInsert("subdocument1", subdocumentObject1);
Повече тук https://docs.mongodb.com/manual/reference/ оператор/актуализация/setOnInsert/