티스토리 뷰
이전 포스팅 내용을 잘 만들었다면, PagingAndSortingRepository 를 이용하여 MongoDB 를 손쉽게 다룰 수 있다.
PagingAndSortingRepository 는 앞서 포스팅에서도 이야기 했듯이 CrudRepository 를 상속하므로 아래의 메소드들을 모두 사용할 수 있다.
T save(T entity); Iterable<T> save(Iterable<? extends T> entities); T findOne(ID id); boolean exists(ID id); Iterable<T> findAll(); long count(); void delete(ID id); void delete(T entity); void delete(Iterable<? extends T> entities); void deleteAll(); Iterable<T> findAll(Sort sort); Page<T> findAll(Pageable pageable);
이중 간단히 3가지정도만 알아본다.
@Controller public class MongoController { private static final Logger logger = LoggerFactory.getLogger(MongoController.class); @Autowired private PersonRepository repository; }
우선 Spring MVC 프로젝트에 테스트할 컨트롤러 하나를 만든다. 여기서 PersonRepository 를 선언해서 사용했다.
Page<T> findAll(Pageable pageable);
이 메소드는 페이징처리하기 손쉽도록 도와주는 조회 메소드 이다. MongoDB의 대용량 데이터를 무턱대고 findAll 하는 경우는 없다고 본다. 당연히 페이징처리를 하는게 기본이고 자주쓰게 될 메소드 일거 같다.
Page<Person> page = repository.findAll(new PageRequest(0, 3)); List<Person> people = page.getContent();
페이지당 3개씩 보여준다 했을때, 첫번째페이지(인덱스는 0부터)의 결과를 가져오는 예제이다.
T save(T entity);
이 메소드는 등록(insert)할 때 사용하는 메소드이다.
Person p = new Person("Joe", 34); Person p1 = this.repository.save(p); ObjectId id = new ObjectId(p.getId()); Date date = new Date(id.getTime()); DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG , DateFormat.LONG, locale); String formattedDate = dateFormat.format(date); logger.info("["+formattedDate+"] " + p1.toString());
Repository 에 알맞는 도메인클래스를 이용하여 객체생성한 후 save 메소드를 이용해 등록(insert)하면 된다. 저장 후에는 _id 정보가 담긴 객체가 리턴되므로 org.bson.types.ObjectId 객체로 정보를 이용할 수 있다. 여기서는 등록된 시간을 가져와 간단히 로그에 찍어봤다.
void deleteAll();
해당 Collection 에 있는 모든 Document 들을 삭제한다.
repository.deleteAll();
수백수천만건 데이터를 한방에 지우는.. 무지막지한 메소드이다. 조심하시라는 차원에 소개시켜드렸으니 적절한 곳에서만 사용하시길 바란다.
- Total
- Today
- Yesterday
- ggplot
- docker
- Google Chart Tools
- 이클립스
- vagrant
- Oracle
- 자급제폰
- ubuntu
- 맥북
- MyBatis
- eclipse
- 마인크래프트
- 아이맥
- ipTIME
- ktm모바일
- R
- python
- 도넛차트
- github
- SVN
- MongoDB
- Spring
- ggplot2
- 셀프개통
- 막대그래프
- java
- javascript
- 알뜰요금제
- heroku
- MySQL
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |