본문 바로가기
[ Developer ]/MongoDB

[MongoDB] 몽고디비 집계 함수 쿼리 개념

by 김현섭. 2016. 6. 29.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
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”
      • 누적 계산할 항목을 정의한다.