정의
특정 창 에 있는 문서 수를 반환합니다.
참고
명확화
이 페이지에서는 창 함수로 사용되는 경우의 $count에 대해 설명합니다.
다음과 같은 다른 컨텍스트에서도 $count를 사용할 수 있습니다.
$count (accumulator), 그룹 의 문서 수를 반환합니다.$count (aggregation stage)입력 문서 수를 반환합니다.
구문
{ $setWindowFields: { ... output: { <field>: { $count: {}, window: { documents: [ <lower boundary>, <upper boundary> ] } } } } }
$count 어떤 매개변수도 허용하지 않습니다.
팁
$count $setWindowFields 단계에서 { $sum: 1 }를 사용하는 것과 기능적으로 동일합니다.
예시
이 페이지의 예제에서는 sample_mflix 데이터 세트의 데이터를 사용합니다. 이 데이터 세트를 자체 관리형 MongoDB deployment 에 로드하는 방법에 대한 자세한 내용은 샘플 데이터 세트 로드를 참조하세요. 샘플 데이터베이스를 수정한 경우 이 페이지의 예제를 실행 하려면 데이터베이스를 삭제하고 다시 만들어야 할 수 있습니다.
유사한 평점을 받은 영화 수 계산
이 예시 범위 기반 창 있는 $count 창 함수를 사용하여 각 영화 등급의 0.5 포인트 내에 IMDb 등급이 있는 2000의 액션 영화가 몇 개 있는지 계산합니다.
db.movies.aggregate( [ { $match: { genres: "Action", year: 2000, "imdb.rating": { $ne: null } } }, { $setWindowFields: { sortBy: { "imdb.rating": 1 }, output: { moviesWithSimilarRating: { $count: {}, window: { range: [ -0.5, 0.5 ] } } } } }, { $project: { _id: 0, title: 1, "imdb.rating": 1, moviesWithSimilarRating: 1 } }, { $sort: { "imdb.rating": -1 } }, { $limit: 10 } ] )
앞의 예시에서
$match2000에서 개봉되었으며imdb.rating값이 있는 액션 영화에 대한 필터입니다.sortBy: { "imdb.rating": 1 }IMDb 등급에 따라 문서를 오름차순으로 정렬합니다. 범위 기반 창 사용할 때는sortBy가 필요합니다.output$count를 사용하여moviesWithSimilarRating필드 IMDb 평점이 현재 창 내에 속하는 영화 수로 설정하다 .이 창
range: [ -0.5, 0.5 ]를 사용하며, 여기에는imdb.rating가 현재 문서 등급의 0.5 포인트 내에 있는 모든 문서가 포함됩니다.$project출력에title,imdb.rating,moviesWithSimilarRating필드가 포함됩니다.$sort그리고$limit은 가독성을 위해 가장 평점이 높은 영화 10개를 반환합니다.
출력은 상대적으로 고유한 평점을 가진 글래디에이터(8.5)가 7.4와 같이 더 일반적인 평점을 가진 영화보다 moviesWithSimilarRating 개수가 더 적은 것을 보여줍니다.