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

MongoDB UpdateFirst-metodebrug

Hvis du vil bruge operatoren $ i opdateringsdelen skal du udtrykkeligt skrive that array i forespørgselsdelen. Så

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

skal være

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

Hvis du kender positionen af ​​element i array, er `$' unødvendig, du kan prøve sådan her:

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

Samme måde at håndtere name på felt.




  1. Opret forbindelse til vært mongodb fra docker container

  2. MongoDB java klientens WriteConcern virker ikke

  3. Er der en måde at bruge MongoDB-forespørgselsobjekter til at filtrere almindelige JavaScript-arrays?

  4. Sådan bruger du MongoDB $ne på indlejret objektegenskab