본문 바로가기
컴퓨터/mongoDB

[mongoDB]몽고디비 aggregate

by TEATO 2014. 8. 5.
반응형

[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을 리턴해줍니다.


반응형

댓글