MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come applicare l'aggiornamento utilizzando l'operatore posizionale filtrato con arrayFilters

Dovrebbe essere:

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
);

Devi assicurarti che il driver Java sottostante sia una versione 3.6.x o successiva per avere arrayFilters() e probabilmente anche per supportare l'aggiunta di UpdateOptions()