sql >> Databasteknik >  >> NoSQL >> MongoDB

Användning av MongoDB UpdateFirst-metoden

Om du vill använda operatorn $ i uppdateringsdelen måste du uttryckligen skriva that array i frågedelen. Så,

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

bör vara

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

Om du känner till elementets position i arrayen är `$' onödig, du kan försöka så här:

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

Samma sätt att hantera name fältet.




  1. Hur man infogar till en MongoDB-samling med en position

  2. Hur skapar man Mongo-databasanslutningen i context.xml i Java-webbprojekt?

  3. Hur man får flera resultat i mongoose och kombinerar det i ett enda svar

  4. Mongo db som inte finns men dyker upp i samband