정의
숫자 배열 에 대해 계산된 하나 이상의 백분위 값을 반환합니다.
참고
명확화
이 페이지에서는 $percentile가 입력 값 배열 에 대해 백분위 값을 계산하는 표현식 으로 사용되는 경우에 대해 설명합니다.
다음과 같은 다른 컨텍스트에서도 $percentile를 사용할 수 있습니다.
$percentile (accumulator)입력 문서 그룹 집계하여 백분위 값을 반환합니다.$percentile (window function)는$setWindowFields단계에서 특정 창 에 있는 문서에 대한 백분위 값의 배열 반환하는 데 사용됩니다.
구문
{ $percentile: { input: <expression>, p: [ <expression1>, <expression2>, ... ], method: <string> } }
옵션
필드 | 유형 | 설명 |
|---|---|---|
| 배열 | 둘 중 하나를 사용하면 됩니다.
|
| 표현식 |
|
| 문자열 | MongoDB 백분위 값을 계산하는 데 사용하는 방법입니다. 메서드는 |
행동
표현식 으로 사용되는 경우 $percentile는 method: 'approximate'이 지정된 경우에도 근사치보다 항상 정확한 백분위 계산 알고리즘 사용합니다. 이는 표현식이 모든 입력 값을 메모리에 유지할 수 있는 제한된 크기의 배열에서 작동하기 때문입니다.
예시
testScores collection을 만듭니다.
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 ] } ] )
다음 파이프라인 $percentile을 사용하여 각 학생의 25, 50, 75 백분위 테스트 점수를 계산합니다.
db.testScores.aggregate( [ { $project: { _id: 0, studentId: 1, testPercentiles: { $percentile: { input: "$scores", p: [ 0.25, 0.5, 0.75 ], method: 'approximate' } } } } ] )
앞의 파이프라인 에서$percentile가 포함된 $project는 각 학생의 scores 배열 25, 50, 75 백분위 백분위 계산하여 testPercentiles로 반환합니다.