정의
$median버전 7.0에 추가 되었습니다.
그룹 에 있는 문서의 중앙값 (50번째 백분위 ) 값의 근사치를 반환합니다.
$median 축적자 다음 단계에서 사용할 수 있습니다.
참고
명확화
이 페이지에서는 축적자 사용되는 $median 에 대해 설명합니다. 축적자는 입력 문서 그룹 에서 애그리게이션된 값을 반환합니다.
다음과 같은 다른 컨텍스트에서도 $median를 사용할 수 있습니다.
$median (expression)단일 문서 에 있는 값 배열 의 중앙값 을 반환합니다.$median (window function)는$setWindowFields단계에서 창 문서에서 중앙값 을 반환하는 데 사용됩니다.
구문
{ $median: { input: <number>, method: <string> } }
명령 필드
$percentile 은(는) 다음 필드를 사용합니다.
필드 | 유형 | 필요성 | 설명 |
|---|---|---|---|
| 표현식 | 필수 사항 |
|
| 문자열 | 필수 사항 |
|
행동
축적자 사용되는 경우 $median:
그룹 의 모든 문서에 대해 단일 결과를 계산합니다.
대략적인 백분위수를 계산하기 위해 t-digest 알고리즘 사용합니다. 경계가 있는 크기의 데이터 구조를 사용하여 중앙값 계산하려면 근사치가 필요합니다.
계산 고려 사항
축적자 사용되는 경우 $median는 항상 근사치 알고리즘 사용합니다. 결과적으로 동일한 데이터 세트 에서 계산된 백분위수 $median 반환값은 t-다이제스트 근사치 알고리즘 의 의사 무작위성으로 인해 실행 마다 다를 수 있습니다. 또한 $median는 실제 통계 중앙값 과 약간 다른 값을 반환할 수 있습니다.
예시
이 페이지의 예제에서는 sample_mflix 데이터 세트의 데이터를 사용합니다. 이 데이터 세트를 자체 관리형 MongoDB deployment 에 로드하는 방법에 대한 자세한 내용은 샘플 데이터 세트 로드를 참조하세요. 샘플 데이터베이스를 수정한 경우 이 페이지의 예제를 실행 하려면 데이터베이스를 삭제하고 다시 만들어야 할 수 있습니다.
다음 예시 $median을 사용하여 2000부터 2004까지의 연간 액션 영화의 IMDb 평점 중앙값 을 계산합니다:
db.movies.aggregate( [ { $match: { genres: "Action", year: { $gte: 2000, $lte: 2004 }, "imdb.rating": { $gt: 0 } } }, { $group: { _id: "$year", medianRating: { $median: { input: "$imdb.rating", method: "approximate" } } } }, { $sort: { _id: 1 } } ] )
이전 파이프라인의 경우: