AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
See how MongoDB 9.0 delivers up to 2x higher throughput.
MongoDB Branding Shape
Register now >
Docs Menu

$ 중앙값 (창 함수)

$median

버전 7.0에 추가 되었습니다.

Returns the median (50th percentile) value from documents in a specified window. You can use $median in both document-based and range-based windows.

참고

명확화

이 페이지에서는 창 함수로 사용되는 경우의 $median에 대해 설명합니다.

다음과 같은 다른 컨텍스트에서도 $median를 사용할 수 있습니다.

{
$setWindowFields: {
...
output: {
<field>: {
$median: {
input: <expression>,
method: <string>
}
}
}
}
}
필드
유형
필요성
설명

input

표현식

필수 사항

중앙값 이 계산되는 값을 반환합니다. input는 숫자로 평가되는 표현식 이어야 합니다. 표현식 숫자로 평가되지 않는 경우 $median 계산은 해당 값을 무시합니다.

method

문자열

필수 사항

mongod가 중앙값 을 계산하는 데 사용하는 메서드입니다. 메서드는 'approximate'이어야 합니다.

$median을 창 함수로 사용하면 method: "approximate"이 지정된 경우에도 근사치보다 항상 정확한 백분위 계산 알고리즘 사용합니다.

이 페이지의 예제에서는 sample_mflix 데이터 세트의 데이터를 사용합니다. 이 데이터 세트를 자체 관리형 MongoDB deployment 에 로드하는 방법에 대한 자세한 내용은 샘플 데이터 세트 로드를 참조하세요. 샘플 데이터베이스를 수정한 경우 이 페이지의 예제를 실행 하려면 데이터베이스를 삭제하고 다시 만들어야 할 수 있습니다.

이 예시 $setWindowFields를 사용하여 어드벤쳐, 코메디, 드라마 장르의 세 가지 모두에 속하는 각 영화의 IMDb 평점 중앙값 을 계산합니다. 이 창 이전 연도, 같은 연도, 다음 연도에 걸쳐 있습니다( [ -1, 1 ] 범위 ).

db.movies.aggregate( [
{
$match: {
genres: { $all: ["Adventure", "Comedy", "Drama"] },
year: { $gte: 2000, $lte: 2005 }
}
},
{
$setWindowFields: {
sortBy: { year: 1 },
output: {
medianRatingByYear: {
$median: {
input: "$imdb.rating",
method: "approximate"
},
window: { range: [ -1, 1 ] }
}
}
}
},
{
$project: {
_id: 0,
title: 1,
year: 1,
genres: 1,
"imdb.rating": 1,
medianRatingByYear: 1
}
},
{ $sort: { year: 1, "imdb.rating": -1 } },
{ $limit: 10 }
] )

이전 파이프라인의 경우:

  • $match 2000 ~ 2005 사이에 출시된 어드벤쳐, 코메디, 드라마 세 장르 모두에 속하는 영화에 대한 필터입니다.

  • $setWindowFields는 year를 오름차순으로 정렬하고 범위 기반 창 [ -1, 1 ]로 적용하여 $median를 적용합니다. 각 영화의 medianRatingByYear은(는) 1년 이내에 개봉한 세 가지 장르 영화의 중앙값 imdb.rating입니다.

  • $project에는 title, year, genres, imdb.rating 및 medianRatingByYear 필드만 포함됩니다.

  • $sort는 결과를 year을 기준으로 오름차순으로 정렬한 다음 imdb.rating를 기준으로 내림차순으로 정렬합니다.

  • $limit 가독성을 높이기 위해 출력을 10 결과로 제한합니다.

이 페이지 평가하기