MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como aplicar a atualização usando o operador posicional filtrado com arrayFilters


Isso deve ser:
WriteResult wr = getMongoTemplate().updateMulti(
  new Query(where("rates.rateCardId").is(1234)),
  new Update().set("rates.$[item].rate", 200),
  new UpdateOptions()
    .arrayFilters(
      Arrays.asList( Filters.in("item.rateCardId",Arrays.asList(1,2)) )
    ), 
  ProductRates.class
);

Você precisa ter certeza de que o driver Java subjacente é uma versão 3.6.x ou superior para ter o arrayFilters() e provavelmente até suporta a adição de UpdateOptions()