我正在尝试更新嵌套的mongo文档中的所有null“role”属性,如下所示:
{
"id": "5a46ae611331fb6b8254a271",
"name": "my_Customer",
"users": [
{
"lastName": "ZoozFirstNameUser",
"firstName": "ZoozLastNameUser",
"id": "5a46ae611331fb6b8254a26e",
"role": null
},
{
"lastName": "Vitaly",
"firstName": "Treck",
"id": "5a46ae611331fb6b8254a26f",
"role": null
}
]
}
我正在尝试使用以下命令执行此操作但不起作用:
@Override
public int updateUserRole(Role newRole) {
Query query = Query.query(Criteria.where("users")
.elemMatch(Criteria.where("role").is(null)));
Update update = new Update().set("users",
new BasicDBObject("role", newRole));
return mongoTemplate.updateMulti(query, update, Customer.class).getN();
}
我没有错误,但在此命令后没有任何改变...... :(
请帮忙
答案 0 :(得分:1)
尝试此更新声明
Update update = new Update().set("users.$.role", newRole);