정의
$median버전 7.0에 추가 되었습니다.
숫자 값 배열 의 중앙값 (50번째 백분위 )을 반환합니다.
참고
명확화
이 페이지에서는 $median가 값 배열 의 중앙값 을 계산하는 표현식 으로 사용되는 경우에 대해 설명합니다.
다음과 같은 다른 컨텍스트에서도 $median를 사용할 수 있습니다.
$median (accumulator)그룹화에 사용되어 입력 문서 그룹 의 중앙값 을 반환합니다.$median (window function)는$setWindowFields단계에서 창 문서에서 중앙값 을 반환하는 데 사용됩니다.
구문
{ $median: { input: <expression>, method: <string> } }
명령 필드
필드 | 유형 | 필요성 | 설명 |
|---|---|---|---|
| 배열 | 필수 사항 | 둘 중 하나를 사용하면 됩니다.
|
| 문자열 | 필수 사항 | MongoDB 중앙값 을 계산하는 데 사용하는 방법입니다. 메서드는 |
행동
$median 을 표현식 으로 사용하면 method: "approximate" 이 지정된 경우에도 근사치보다 항상 정확한 백분위 계산 알고리즘 사용합니다.
이는 표현식이 모든 입력 값을 메모리에 유지할 수 있는 제한된 크기의 배열에서 작동하기 때문입니다.
예시
다음 예시 testScores 컬렉션 사용하여 $median의 배열 입력 형식을 보여줍니다.
testScores 컬렉션을 생성합니다.
db.testScores.insertMany( [ { studentId: "2345", scores: [ 62, 81, 80, 75, 68 ] }, { studentId: "2356", scores: [ 60, 83, 79, 72, 65 ] }, { studentId: "2358", scores: [ 67, 82, 78, 70, 84 ] }, { studentId: "2367", scores: [ 64, 72, 77, 58, 91 ] }, { studentId: "2369", scores: [ 60, 53, 72, 85, 63 ] } ] )
다음 파이프라인 $median를 사용하여 각 학생의 시험 점수 중앙값 을 계산합니다:
db.testScores.aggregate( [ { $project: { _id: 0, studentId: 1, testMedians: { $median: { input: "$scores", method: 'approximate' } } } } ] )
이전 파이프라인의 경우:
$median가 포함된$project는 각 문서 의scores배열 에서 중앙값 을 찾아testMedians로 반환합니다.각 결과는 해당 학생이 기록한 시험 점수의 중앙값 을 반영합니다.