MongoDB에서 평균값 계산하기
MongoDB에서 평균값을 계산하려면 aggregate() 메서드와 함께 $avg 연산자를 사용하면 됩니다. 이 글에서는 실제 예제를 통해 단계별로 평균값을 구하는 방법을 알아보겠습니다.
1단계: 문서가 포함된 컬렉션 생성
먼저 insertOne() 메서드를 사용하여 샘플 점수(Score) 데이터를 담은 컬렉션을 생성합니다.
> db.demo159.insertOne({"Score":50});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e3557b2fdf09dd6d0853a01")
}
> db.demo159.insertOne({"Score":70});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e3557b6fdf09dd6d0853a02")
}
> db.demo159.insertOne({"Score":60});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e3557c4fdf09dd6d0853a03")
}2단계: find() 메서드로 전체 문서 조회
find() 메서드를 사용하면 컬렉션에 저장된 모든 문서를 확인할 수 있습니다.
> db.demo159.find();
위 명령을 실행하면 다음과 같은 결과가 출력됩니다.
{ "_id" : ObjectId("5e3557b2fdf09dd6d0853a01"), "Score" : 50 }
{ "_id" : ObjectId("5e3557b6fdf09dd6d0853a02"), "Score" : 70 }
{ "_id" : ObjectId("5e3557c4fdf09dd6d0853a03"), "Score" : 60 }3단계: $avg 연산자로 평균값 계산
이제 aggregate() 메서드 안에 $group 스테이지를 구성하고, $avg 연산자를 적용하여 Score 필드의 평균값을 계산합니다. _id를 null로 지정하면 컬렉션의 모든 문서를 하나의 그룹으로 묶어 전체 평균을 구할 수 있습니다.
> db.demo159.aggregate([{$group: {_id:null, AverageValue: {$avg:"$Score"} } }])실행 결과는 다음과 같습니다.
{ "_id" : null, "AverageValue" : 60 }결과를 보면 세 개의 점수(50, 70, 60)의 평균인 60이 정상적으로 출력되는 것을 확인할 수 있습니다. 이처럼 aggregate() 파이프라인과 $avg 연산자를 조합하면 특정 필드의 평균값을 손쉽게 계산할 수 있으며, 조건을 추가하거나 그룹핑 기준을 변경하는 등 다양한 형태의 통계 분석에도 활용할 수 있습니다.