Mongotemplate Обновление полей в глубоких вложенных массивах - PullRequest
0 голосов
/ 28 мая 2019

Я использую драйвер монго 3.8.2 и spring-data-mongo 2.1.6.и пытается обновить поля во вложенном массиве с помощью mongoTemplate и не работает

я попробовал два решения, упомянутые здесь, и не работает Как применить обновление с помощью оператора позиционированного фильтра с arrayFilters

Query query = new Query();
Update update = new Update();
query.addCriteria(Criteria.where("_id").is(parentPrice.getSapId()).and("commercialOrganizationPrice.commercialOrganization").is(priceBean.getCommercialOrganization()));
update.set("commercialOrganizationPrice.commercialOrganization.$.components.$[product].amountDistribution",200);
UpdateOptions updOption = new UpdateOptions()
    .arrayFilters(
      Arrays.asList( Filters.eq("product.productIdComponent","OCFR") )
    );
template.updateMulti(query,update,parentPrice.class);

я хочу добавить updOptions к методам updateMulti, но этот параметр не принимает

...