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

Aggiornamento MongoDB Primo utilizzo del metodo

Se vuoi usare l'operatore $ nella parte di aggiornamento, devi scrivere esplicitamente that array nella parte della query. Allora,

mongoTemplate.updateFirst(
query(where("name").is("Award1")), 
Update.update("brand.$.descr", "Desc2"),
Awards.class);

dovrebbe essere

mongoTemplate.updateFirst(
query(where("name").is("Award1"))
.and("brand.name").is("Brand1"), // "brand" in "brand.name" is necessary, others according to your requirement
Update.update("brand.$.descr", "Desc2"),
Awards.class);

Se conosci la posizione dell'elemento nell'array, `$' non è necessario, puoi provare in questo modo:

mongoTemplate.updateFirst(
query(where("name").is("Award1")), 
Update.update("brand.0.descr", "Desc2"), // 0 is the index of element in array
Awards.class);

Stesso modo di gestire name campo.