弹簧数据 Mongo模板更新嵌套数组失败



JSON如下所示:

{   
"_id" : ObjectId("5e01d02b0e3cfd2e4c5976f0"),
"name" :"SomeName",
"outerEntity" : {
"accounts" : [
{
"accountId" : "1235",
"type" : "SB",
"details" : [
{
"name" : "accountName",
"value" : "accName"
},
{
"name" : "ifsc",
"value" : "ICICI12122",
},
{
"name" : "address",
"value" : "address1",
}
]
}
],
"profiles" : null,
"orders" : null,
}
}

我正在尝试使用 Mongotemplate 更新更新字段,如下所示。但是更新没有发生。

Update data = new Update();
data.set("outerEntity.accounts.$.type", "somevalue");

对于每个对象的详细信息,仅更新值

data.set("outerEntity.accounts.details.$.value","someValue");   

Query query = new Query();
query.addCriteria(Criteria.where("name").is("SomeName"));

mongoTemplate.updateFirst(query, update, UserDetails.class);

您可以在应用程序级别使用以下方式执行此操作

Query query = new Query();
query.addCriteria(Criteria.where("name").is("SomeName"));
UserDetails details = mongoTemplate.findOne(query, UserDetails.class);
for(Account acc: details.outerEntity.accounts) {
for(Account.Detail detail : acc.details) {
detail.value = "someValue";
}
}
mongoTemplate.save(details);

最新更新