정의
숫자 배열 요소의 평균을 반환합니다.
참고
명확화
이 페이지에서는 배열 에 있는 숫자 요소의 평균을 반환하는 표현식 으로 $avg을 사용하는 경우에 대해 설명합니다.
다음과 같은 다른 컨텍스트에서도 $avg를 사용할 수 있습니다.
$avg (accumulator)는 다양한 입력 문서 수를 기반으로 애그리게이션된 단일 값을 반환합니다.$avg (window function)는$setWindowFields단계에서 특정 창 에 있는 문서의 값의 평균을 반환하는 데 사용됩니다.
구문
표현식 으로 사용되는 경우 $avg은 다음 구문 중 하나를 가집니다:
{ $avg: <expression> }
이 구문에서 피연산자는 배열 로 해석되는 단일 표현식 입니다. $avg은 배열 트래버스하고 배열의 숫자 값의 평균을 반환합니다. 예시 들어, { $avg: "$testScores" }은 testScores 배열 필드 에 있는 숫자 값의 평균을 반환합니다.
{ $avg: [ <expression1>, <expression2> ... ] }
이 구문에서 입력 배열 의 각 표현식 단일 숫자 값입니다. $avg는 개별 입력 값의 평균을 반환합니다. 입력 표현식 중 하나라도 배열 로 해석되는 경우 $avg 은 배열 트래버스하지 않고 대신 배열 숫자가 아닌 값으로 처리합니다.
행동
결과 유형
기본값 반환 유형은 더블입니다. 하나 이상의 입력 값이 10진수인 경우 반환 유형은 10진수입니다.
숫자가 아니거나 누락된 값
$avg 누락된 값을 포함하여 숫자가 아닌 값을 무시합니다. 모든 입력 값이 숫자가 아닌 경우 $avg은 null을 반환합니다.
예시
다음 문서로 students 컬렉션을 생성합니다.
db.students.insertMany( [ { _id: 1, quizzes: [ 10, 6, 7 ], labs: [ 5, 8 ], final: 80, midterm: 75 }, { _id: 2, quizzes: [ 9, 10 ], labs: [ 8, 8 ], final: 95, midterm: 80 }, { _id: 3, quizzes: [ 4, 5, 5 ], labs: [ 6, 5 ], final: 78, midterm: 70 } ] )
다음 작업은 $project 단계에서 $avg을 사용하여 다음 필드에 대한 평균을 계산합니다.
quizzeslabsfinal및midterm의 결합 평균
db.students.aggregate( [ { $project: { quizAvg: { $avg: "$quizzes"}, labAvg: { $avg: "$labs" }, examAvg: { $avg: [ "$final", "$midterm" ] } } } ] )
출력
[ { _id: 1, quizAvg: 7.666666666666667, labAvg: 6.5, examAvg: 77.5 }, { _id: 2, quizAvg: 9.5, labAvg: 8, examAvg: 87.5 }, { _id: 3, quizAvg: 4.666666666666667, labAvg: 5.5, examAvg: 74 } ]