MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Comment appliquer la mise à jour à l'aide de l'opérateur de position filtré avec arrayFilters

Cela devrait être :

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

Vous devez vous assurer que le pilote Java sous-jacent est une version 3.6.x ou supérieure afin d'avoir le arrayFilters() et susceptible même de prendre en charge l'ajout de UpdateOptions()