如何更新MongoDB中的嵌套文档,而不是使用SpringDataJava

如何更新MongoDB中的嵌套文档,而不是使用SpringDataJava,java,spring,mongodb,spring-data,spring-data-mongodb,Java,Spring,Mongodb,Spring Data,Spring Data Mongodb,我正在尝试更新嵌套mongo文档中的所有null“role”属性,如下所示: { "id": "5a46ae611331fb6b8254a271", "name": "my_Customer", "users": [ { "lastName": "ZoozFirstNameUser", "firstName":

我正在尝试更新嵌套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();
         }
我没有收到任何错误,但此命令后没有任何更改…:(


请帮助

尝试此更新语句

Update update = new Update().set("users.$.role", newRole);

请尝试此更新语句

Update update = new Update().set("users.$.role", newRole);