Menu
CoddyTech

그룹별 평균 구하기

Coddy Node.js 여정의 MongoDB 데이터베이스 섹션에 포함된 레슨. 29개 중 22번째.

그룹은 동일한 입력 문서에 대해 여러 요약을 계산할 수 있습니다. 그룹화 표현식은 어떤 레코드끼리 함께 묶일지 결정하고, 각 누산기는 별도의 출력 필드를 계산합니다.

{$group: {
    _id: '$team',
    players: {$sum: 1},
    averageScore: {$avg: '$score'}
}}

같은 팀의 두 선수가 각각 8점과 12점을 기록한 경우, players는 2이고 averageScore는 10입니다. 따옴표로 묶인 '$score'는 입력되는 각 선수의 점수를 읽습니다. 같은 방법을 책의 출판 연도에도 적용하세요. 출력 필드 이름은 원하는 대로 정할 수 있으며, 필드 참조는 평균을 계산할 값을 지정합니다.

challenge icon

챌린지

쉬움

이것은 간단한 연습 프로젝트입니다. 설정은 제공되어 있으니 exercise.js만 수정하세요.

책을 장르별로 그룹화하고 _id, 개수, averageYear를 반환하세요. 출력을 _id 오름차순으로 정렬하세요. 실행 결과: classic의 개수는 1이고 averageYear는 1815입니다. scifi의 개수는 2이고 averageYear는 1972입니다.

직접 해보기

export async function exercise(books) {
    return await books
        .aggregate([{ $group: { _id: '$genre', count: { $sum: 1 } } }, { $sort: { _id: 1 } }])
        .toArray();
}

MongoDB 데이터베이스의 모든 레슨

직접 연습해 보세요: Express 플레이그라운드