본문 바로가기
[ Developer ]/MongoDB

[MongoDB] 몽고디비 스프링 삭제 Delete

by 김현섭. 2016. 7. 2.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Spring-Data-MongoDB Delete 선택 삭제
선택 삭제를 구현하기 위해 또 하나의 메소드를 구현 한다

key는 name과 같은 변수명이고 value는 키의 값이다
이제 main에 가서 메소드를 사용해본다

위와 같이 사용을 한다면 "name"이 "둘리"인 것만 삭제를 하게 된다

Robomongo에서 확인을 하니 제일 첫 번째로 나와야 하는 둘리가 없다
정확히 삭제된 것을 알 수 있다

*removeData 선택 삭제
1
2
3
4
5
6
7
8
    private void removeData(String key, String value) {
        Criteria criteria = new Criteria(key);
        criteria.is(value);
        
        Query query = new Query(criteria);
        
        mongoTemplate.remove(query, "person");
    }
cs

추가적으로 한가지 조건이 아닌 여러 가지 조건을 걸어서 삭제를 하려면 and를 이용하면 된다


위와 같이 작성된 것은 name이 둘리이고 address가 지구인 것을 찾아서 삭제한다
그러나 현재 해당하는 조건이 없기 때문에 지워지지 않을 것이다

이제 테스트를 해보기 위해서 name 둘리가 지워야 하므로 전체 삭제 후 재 입력을 한다


위와 같이 main을 수정하면 기존 데이터를 지운 후 재 입력하고 removeData를 실행하니 둘리가 삭제되지 않을 것이다

Robomongo를 이용해서 확인할 수 있다


*removeData 추가 조건 주기
1
2
3
4
5
6
7
8
9
10
11
    private void removeData(String key, String value) {
        Criteria criteria = new Criteria(key);
        criteria.is(value);
        
        criteria = criteria.and("address");
        criteria.is("지구");
        
        Query query = new Query(criteria);
        
        mongoTemplate.remove(query, "person");
    }