정의
문서 그룹 의 숫자 값 평균을 반환합니다.
$avg 축적자 다음 단계에서 사용할 수 있습니다.
참고
명확화
이 페이지에서는 축적자 사용되는 $avg 에 대해 설명합니다. 축적자는 입력 문서 그룹 에서 합계, 최대값, 최소값과 같은 단일 애그리게이션 값을 반환합니다.
다음과 같은 다른 컨텍스트에서도 $avg를 사용할 수 있습니다.
$avg (expression)배열 에 있는 숫자 요소의 평균을 반환합니다.$avg (window function)는$setWindowFields단계에서 특정 창 에 있는 문서의 값의 평균을 반환하는 데 사용됩니다.
구문
{ $avg: <expression> }
행동
결과 유형
기본값 반환 유형은 더블입니다. 하나 이상의 입력 값이 10진수인 경우 반환 유형은 10진수입니다.
숫자가 아니거나 누락된 값
$avg 누락된 값을 포함하여 숫자가 아닌 값을 무시합니다. 모든 입력 값이 숫자가 아닌 경우 $avg은 null을 반환합니다.
배열 피연산자
피연산자가 배열 로 해석되는 경우 $avg는 피연산자를 숫자가 아닌 값으로 처리합니다.
예시
다음 문서로 sales 컬렉션을 생성합니다.
db.sales.insertMany( [ { _id: 1, item: "abc", price: 10, quantity: 2, date: ISODate("2014-01-01T08:00:00Z") }, { _id: 2, item: "jkl", price: 20, quantity: 1, date: ISODate("2014-02-03T09:00:00Z") }, { _id: 3, item: "xyz", price: 5, quantity: 5, date: ISODate("2014-02-03T09:05:00Z") }, { _id: 4, item: "abc", price: 10, quantity: 10, date: ISODate("2014-02-15T08:00:00Z") }, { _id: 5, item: "xyz", price: 5, quantity: 10, date: ISODate("2014-02-15T09:12:00Z") } ] )
다음 작업은 다음을 수행합니다.
item필드 기준으로 문서를 그룹화합니다.$avg축적자 사용하여 각 그룹 의 평균 수량과 평균 수량을 계산합니다.
db.sales.aggregate( [ { $group: { _id: "$item", avgAmount: { $avg: { $multiply: [ "$price", "$quantity" ] } }, avgQuantity: { $avg: "$quantity" } } } ] )
출력:
[ { _id: 'xyz', avgAmount: 37.5, avgQuantity: 7.5 }, { _id: 'abc', avgAmount: 60, avgQuantity: 6 }, { _id: 'jkl', avgAmount: 20, avgQuantity: 1 } ]