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

minN(집계 누산기)

$minN

그룹 내 최소 n 값을 반환합니다. 그룹 n개 미만의 요소가 포함된 경우 $minN는 그룹 의 모든 요소를 반환합니다.

참고

명확화

이 페이지에서는 축적자 사용되는 $minN 에 대해 설명합니다. 축적자는 입력 문서 그룹 에서 합계, 최대값, 최소값과 같은 애그리게이션된 값을 반환합니다.

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

{
$minN:
{
input: <expression>,
n: <expression>
}
}
필드
유형
설명

input

표현식

입력 값을 결정하기 위해 각 입력 문서 에 대해 평가된 표현식 입니다. 이러한 가장 작은 n 값은 각 그룹 에 대해 유지됩니다.

n

표현식

그룹 반환되는 최대 결과 수를 결정합니다. n은 양의 정수로 평가되어야 합니다.

$minN이(가) 서로 다른 유형의 값을 비교할 때 유형의 순서는 BSON 비교 순서를 따릅니다.

$minN null 및 누락된 값을 필터링합니다.

그룹 에서 최소 n 값을 반환하는 다음 집계 고려하세요.

db.aggregate( [
{
$documents: [
{ playerId: "PlayerA", gameId: "G1", score: 1 },
{ playerId: "PlayerB", gameId: "G1", score: 2 },
{ playerId: "PlayerC", gameId: "G1", score: 3 },
{ playerId: "PlayerD", gameId: "G1" },
{ playerId: "PlayerE", gameId: "G1", score: null }
]
},
{
$group:
{
_id: "$gameId",
minimumThreeScores:
{
$minN:
{
input: "$score",
n: 4
}
}
}
}
] )

이 예시에서는

  • $documents 플레이어 점수가 포함된 리터럴 문서를 생성합니다.

  • $group은 gameId 기준으로 문서를 그룹화합니다. 이 예시에는 gameId가 단 하나(G1)만 있습니다.

  • PlayerD 점수가 누락되었고 PlayerE 에 null score 이(가) 있습니다. 이 값은 모두 무시됩니다.

  • minimumThreeScores 필드 input : "$score" 를 가진 $minN 로 지정되고 배열 로 반환됩니다.

  • scores이 있는 3 문서만 있으므로 $minN는 n = 4임에도 불구하고 최소 3 score 필드를 반환합니다.

[
{
_id: 'G1',
minimumThreeScores: [ 1, 2, 3 ]
}
]

$minN 축적자와 $bottomN 축적자는 모두 그룹 에서 n 값을 반환하지만, 반환할 값을 결정하는 방법이 다릅니다.

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

$minN 축적자 사용하여 단일 장르에서 가장 낮은 IMDb 평점 3개를 찾을 수 있습니다.

db.movies.aggregate( [
{
$match: { genres: "Horror" }
},
{
$group:
{
_id: "Horror",
minThreeRatings:
{
$minN:
{
input: "$imdb.rating",
n: 3
}
}
}
}
] )

예시 파이프라인:

  • $match를 사용하여 genres 배열 에 Horror가 포함된 영화로 결과를 필터하다 합니다.

  • $group를 사용하여 일치하는 모든 문서를 단일 그룹 으로 그룹 .

  • input: "$imdb.rating"을 사용하여 $minN에 대한 입력을 지정합니다.

  • $minN을 사용하여 n: 3가 있는 Horror 장르에 대해 가장 낮은 IMDb 평점 항목 3개를 반환합니다.

$minN 축적자 사용하여 각 장르의 최소 n IMDb 평점을 찾을 수 있습니다.

db.movies.aggregate( [
{
$unwind: "$genres"
},
{
$group:
{
_id: "$genres",
minThreeRatings:
{
$minN:
{
input: "$imdb.rating",
n: 3
}
}
}
},
{ $sort: { _id: 1 } },
{ $limit: 5 }
] )

예시 파이프라인:

  • $unwind를 사용하여 genres 배열 의 각 장르에 대해 별도의 문서 생성합니다.

  • $group를 사용하여 genres별로 결과를 그룹 합니다.

  • $minN를 사용하여 각 장르에 대해 가장 낮은 IMDb 평점 항목 3개를 n: 3로 반환합니다.

  • input: "$imdb.rating"을 사용하여 $minN에 대한 입력을 지정합니다.

  • $sort를 사용하여 장르별로 결과를 알파벳순으로 정렬합니다.

  • 가독성을 높이기 위해 출력을 5개의 문서로 제한합니다.

n의 값을 동적으로 할당할 수 있습니다. 이 예시 에서는 $cond 표현식 rated 필드 에 사용됩니다.

db.movies.aggregate( [
{ $match: { rated: { $in: [ "G", "PG", "PG-13", "R" ] } } },
{
$group:
{
_id: { "rated": "$rated" },
minMovies:
{
$minN:
{
input: "$imdb.rating",
n: { $cond: { if: { $eq: [ "$rated", "R" ] }, then: 3, else: 1 } }
}
}
}
}
] )

예시 파이프라인:

  • 평점이 G, PG, PG-13 또는 R인 영화를 필터링합니다.

  • rated(콘텐츠 등급)별로 영화를 그룹화합니다.

  • input: "$imdb.rating"을 사용하여 $minN에 대한 입력을 지정합니다.

  • $cond 표현식 사용하여 R등급 영화에 대해서는 3개의 최소 항목을 반환하고 다른 모든 등급에 대해서는 1개의 최소 항목을 반환합니다.

출력에서 R 평가는 3 항목을 반환하고, G, PG 및 PG-13 평가는 각각 1 항목을 반환합니다.

이 페이지 평가하기

이 페이지의 내용