0

를 사용하여 MongoDB의 문서 나 하나 개의 사용자 클래스를 다음과 같이 있습니다갱신 자바 객체

@Document(collection = "users") 
public class User { 

    @Id 
    private String id; 

    String username; 

    String password; 

    String description; 

    public String getId() { 
     return id; 
    } 

    public void setId(String id) { 
     this.id = id; 
    } 

    public String getUsername() { 
     return username; 
    } 

    public void setUsername(String username) { 
     this.username = username; 
    } 

    public String getPassword() { 
     return password; 
    } 

    public void setPassword(String password) { 
     this.password = password; 
    } 

    public String getDescription() { 
     return description; 
    } 

    public void setDescription(String description) { 
     this.description = description; 
    } 

    @Override 
    public String toString() { 
     return "User[id=" + id + ", username=" + username + ", password=" + password + ", description" 
       + description + "]"; 
    } 

} 

나는 제한된 업데이트를 수행 할 수있게되었습니다. 마찬가지로 : 지금은 User 클래스의 나머지 다른 필드 (username and description)를 업데이트하려면

Query searchQuery = new Query(Criteria.where("id").is("shashi")); 
     mongoDBClient.updateFirst(searchQuery, Update.update("password", "newpassword"), User.class); 

, 나는 updateFirst 방법 많은 시간을 호출해야합니다.

이 문제를 피하고 전체 개체를 updateFirst 방법으로 전달하고 싶습니다.

mongoDBClient.updateFirst(searchQuery, Update.update(userObject), User.class); 

는 기본적으로, 나는 자바 POJO 객체를 사용하여 하나의 호출에있는 모든/여러 필드를 편집 할 :처럼 뭔가. 내가 어떻게 이걸 이룰 수 있니?

1) 업데이트해야하는 문서를 조회 아래와 같이

답변

0

편집/자바 POJO 객체를 사용하여 하나의 호출의 모든 여러 필드는 수행 할 수 있습니다 -> 우리는 자바 객체를 얻을

2) 저장) 객체를 자바 객체

3의 모든 수정 작업을 수행

코드 :

Query query = new Query(); 
query.addCriteria(Criteria.where("id").is("shashi")); 
User user = mongoOperation.findOne(query, User.class); 
//modify the user object with the properties need to be updated 
//Modify password and other fields 

user.setPassword("newpassword"); 
user.setDescription("new description"); 
user.setUsername("NewUserName"); 
//save the modified object 
mongoOperation.save(user);