2017-12-29 11 views
0

die Verwendung Ich versuche, all null „Rolle“ Eigenschaft in dem verschachtelten Mongo Dokument wie folgt zu aktualisieren: Ich versucheWie Update Dokument in MongoDB verschachtelt bevorzugt Spring Data Java

{ 
      "id": "5a46ae611331fb6b8254a271", 
      "name": "my_Customer", 
      "users": [ 
       { 
        "lastName": "ZoozFirstNameUser", 
        "firstName": "ZoozLastNameUser", 
        "id": "5a46ae611331fb6b8254a26e", 
        "role": null 
       }, 
       { 
        "lastName": "Vitaly", 
        "firstName": "Treck", 
        "id": "5a46ae611331fb6b8254a26f", 
        "role": null 
       } 
      ] 
    } 

zu tun es mit dem folgenden Befehl, aber es funktioniert nicht:

 @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(); 
     } 

ich keine Fehler bekam aber nichts nach diesem Befehl geändert ... :(

Bitte helfen

Antwort

1

Versuchen Sie diese Update-Anweisung

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