[mongoDB]몽고디비 aggregate
오라클에 pl/sql이 있다면 mongodb에는 aggregate가 있습니다.
기존의 find로는 원하는 데이터로 가공하는데 어려움이 많이 따르는데요
aggregate를 이용하면 해결할 수 있습니다.
RDBMS |
aggregate |
where |
$match |
group by |
$group |
having |
$match |
select |
$project |
order by |
$sort |
limit |
$limit |
sum() |
$sum |
count() |
$sum |
RDBMS와 aggregate를 비교한것입니다.
$group과 $sum으로 count를 세는 명령어 입니다.
$match 부분에 써준 조건이 rdb에서 where에 해당합니다.
$project 부분에는 실제로 가져올 데이터를 표시하는 부분입니다.
_id : 0은 _id값은 불러오지않는다는 뜻입니다.
1로 되어있는 부분이 불러오는 데이터입니다.
$toLower 는 소문자로 출력하는것입니다.
$toUpper 는 대문자로 출력하는것입니다.
$substr 은 오라클의 substr과 동일합니다. 해당 필드의 부분만 가져오는것을 볼 수 있습니다.
$strcasecmp 는 문자열을 비교하는 명령입니다. 1이면 ture -1이면 false를 뜻합니다.
$ifNull 명령은 null일 경우 뒤에 쓴 것으로 대체하는 것입니다. 오라클의 nvl과 동일해요
$add 는 [a,b]는 a와 b를 더하는것입니다.
$subtract 빼기
$multiply 곱하기
$divide 나누기
$group 부분에 _id : 0의 뜻은 모든 데이터를 뜻합니다.
마지막에 .pretty()를 붙여주면 이쁘게..? 출력해줍니다.
$addToSet은 배열에 담는것을 뜻합니다.
$sort는 소트를 뜻합니다. 1은 오름차순 -1은 내림차순입니다.
$limit : 5는 5 document만 추출한다는 뜻입니다.
$skip : 1 은 첫번째 document는 skip한다는 뜻입니다.
$cond 도 null을 처리할때 사용합니다.
$cond : ["$comm",1,0] 은 comm이 null이 아니면 1 null이면 0을 리턴해줍니다.
'컴퓨터 > mongoDB' 카테고리의 다른 글
[mongoDB]몽고디비 사용자 인증 (0) | 2014.08.06 |
---|---|
[mongoDB]Mapreduce 몽고디비 맵리듀스 (0) | 2014.08.05 |
[mongoDB]몽고디비 기본명령어 (0) | 2014.08.04 |
[mongoDB]몽고디비 find() insert, update (0) | 2014.08.04 |
[mongoDB]Collection 콜렉션 만들기 기본개념 (0) | 2014.08.04 |
댓글