반갑습니다!
이번 포스트에서는 주요 누산식(accumulator) 중 하나인
$sum과 $avg에 대해서 알아보겠습니다
1. 값을 누적하여 합계 계산 : $sum
누산식들은 보통 $group 작업과 많이 사용됩니다 ^^
샘플 코드를 살펴보면 stage1에 해당하는 작업으로 먼저 그룹화가 진행되었는데요
_id 필드로 기준 삼을 컬럼은 year 컬럼이 되겠습니다
그럼 해당 영화들의 개봉 연도별로 그룹화가 진행되어 집계되는데요
각 연도별로 개봉한 영화의 합이 어떻게 되는지에 대해서 totalMovies라는 이름의 컬럼을 만들어서
$sum 키워드를 이용한 합계값을 매핑하는 명령어 구조가 되겠습니다 ^^
해서 콘솔에 출력된 결과를 보면 _id 컬럼에는 영화의 개봉 연도 정보인 year의 값들이,
그룹화 후 새로 만든 컬럼인 totalMovies 컬럼에는 각 연도별 개봉 영화 수에 대한 합계 값이
매핑이 된 것을 볼 수가 있겠습니다 ^^
2. 값의 평균을 계산 : $avg
그 다음에는 $avg에 대한 예시인데요
마찬가지로 year 컬럼을 _id로 기준 삼아서 그룹화를 진행하겠습니다
대신 이번에는 imdb의 rating 정보에 대해 평균값을 구해서
averageRating 컬럼에 매핑시켜서 콘솔창에 출력했습니다 ^^
여기서 잠깐,
$avg 연산의 대상이 된 imdb.rating이 무슨 의미인지
자세히 살펴보도록 하겠습니다 ^^
movies 컬렉션에 있는 도큐먼트들은 수많은 필드들을 갖고 있는데요
그 중에 필드의 이름이 imdb인 것이 있습니다
이 컬럼은 배열 형태의 데이터 타입을 갖는데요
해당 항목을 더블 클릭해서 어떤 요소들을 갖고 있는지 한 번 조회해보겠습니다 ^^
imdb라는 필드가 갖는 배열에는
rating, votes, id 세 가지의 정보가 elements로 담겨있습니다 ^^
이렇게 해당 필드가 갖는 데이터 타입이 배열일 때에는
하위 목록에 접근하기 위해서 imdb.rating의 구조로 닷 오퍼레이터를 이용하여 접근합니다 ^^
풀어서 말하자면,
imdb 컬럼의 rating 정보를 기준으로 $avg 연산을 하라는 의미인거죠!
이번 포스트에서는 주요 누산식 중 하나인
$sum과 $avg에 대해서 알아보았습니다 ^^
다음 포스트에 이어서 나머지 내용들도 살펴보도록 하겠습니다!
'MongoDB > MongoDB Aggregation 다루기' 카테고리의 다른 글
[MongoDB Aggregation] 5. 주요 accumulator(2) - $min과 $max 사용하여 최솟값과 최댓값 찾기 (0) | 2024.08.20 |
---|---|
[MongoDB Aggregation] 3. Aggregation의 $match와 $group 알아보기 (0) | 2024.08.20 |
[MongoDB Aggregation] 2. MongoDB의 Aggregation 실습 전 준비사항 (0) | 2024.08.20 |
[MongoDB Aggregation] 1. MongoDB의 Aggregation 프레임워크 이해하기 (0) | 2024.08.20 |