Nếu bạn muốn sử dụng toán tử $
trong phần cập nhật, bạn phải viết rõ ràng that array
trong phần truy vấn. Vì vậy,
mongoTemplate.updateFirst(
query(where("name").is("Award1")),
Update.update("brand.$.descr", "Desc2"),
Awards.class);
nên được
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);
Nếu bạn biết vị trí của phần tử trong mảng, `$ 'là không cần thiết, bạn có thể thử như sau:
mongoTemplate.updateFirst(
query(where("name").is("Award1")),
Update.update("brand.0.descr", "Desc2"), // 0 is the index of element in array
Awards.class);
Cùng một cách để xử lý name
trường.