MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Verwendung der MongoDB UpdateFirst-Methode

Wenn Sie den Operator $ verwenden möchten im Update-Teil müssen Sie explizit that array schreiben im Abfrageteil. Also,

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

sollte

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

Wenn Sie die Position des Elements im Array kennen, ist `$' unnötig, Sie können es folgendermaßen versuchen:

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

name wird auf die gleiche Weise behandelt Feld.