I have a Java entity PostsHolder
wchich in MongoDB looks like this:
{
"id":"1",
"name": "xxx"
"posts":[
{
"_id":"1",
"inner":{
"value":"value1",
"type":"typeX",
}
},
{
"_id":"2",
"inner":{
"value":"value2",
"type":"type1",
}
},
{
"_id":"3",
"inner":{
"value":"value2",
"type":"typeX",
}
}
]
}
I want to update every post
value
field if type == 'typeX'
.
How can I do this?
I've tried the below code but it changes only the first occurence in posts
collection:
WriteResult wr = mongoTemplate.updateMulti(
new Query(where("posts.inner.type").is("typeX")),
new Update().set("posts.$.inner.value", "changedValue"),
PostHolder.class,
"post_holder"
);