[ Developer ]/MongoDB
[MongoDB] 몽고디비 집계 함수 쿼리 개념
김현섭.
2016. 6. 29. 19:44
MongoDB 집계 함수 쿼리 개념
- Count
- Collection 내의 문서의 수를 반환.
- SQL 의 count와 같은 역할을 수행한다.
- db.foo.count() 혹은 db.foo.count( {“name” : “mcjang”} )
- Count는 문서의 수와 상관없이 매우 빠른 연산을 수행하지만
- 조건이 추가될 경우 속도가 느려진다.
- Distinct
- Distinct 하는 방법
- db.inventory.distinct("dept")
- Collection 내의 주어진 Key의 고유한 값을 반환함.
- People Collection 에 다음과 같은 문서가 있다고 가정
- age key 에 distinct를 호출
- db.runCommand( { “distinct” : “people”, “key” : “age” } )
- 결과 { “values” : [20, 35, 60], “ok” 1 }
- Group
- SQL의 Group By와 동일함.
- Distinct와 동일하게 runCommand로 실행함.
- Group의 포멧
- “ns”
- 어떤 컬렉션에서 Group을 수행할 것인지 결정
- “key”
- 지정한컬렉션에서 문서를 그룹핑할 키를 지정. Group by column 과 동일함.
- “$reduce”
- 컬렉션 내의 각 문서들에 대해서 한번씩 호출한다.
- Function의 인자는 총 2개인데, 하나는 해당 문서를 받고, 또 다른 하나는 현재까지 누적 계산된 문서를 받는다.
- 누적계산은 사용자가 정의할 수 있다.
- “$keyf”
- 함수를 키로 사용한다.
- 하나의 키가 아닌 복잡한 조건의 Key를 사용하려 할 때 쓴다.
- “필수 아님“
- “cond”
- 그룹핑할 표본을 정의한다.
- “finalize”
- SQL의 Having과 같음.
- 그룹핑 될 결과로 다시 한번 연산할 때 사용한다.
- “initial”
- 누적 계산할 항목을 정의한다.