집계 파이프라인의 $sortByCount 단계는 지정된 식에 따라 문서를 그룹화한 다음, 각 그룹의 문서 수를 내림차순으로 정렬하는 데 사용됩니다. 이 $sortByCount
단계는 데이터 세트 내에서 가장 일반적인 값을 빠르게 식별하는 데 유용합니다.
문법
$sortByCount 단계의 구문은 다음과 같습니다.
{
$sortByCount: <expression>
}
매개 변수
설명 | |
---|---|
expression |
이 구문은 문서를 그룹화하고 계산할 필드 또는 계산 식입니다. |
예시
앞에서 설명한 대로 구조화된 문서가 있는 stores로 명명된 컬렉션을 생각해 보세요. 이름을 기준으로 가장 일반적인 프로모션 이벤트를 확인하려면 다음과 같이 $sortByCount 단계를 사용할 수 있습니다.
예제 1: 이벤트 이름별 프로모션 이벤트 계산 및 정렬
db.stores.aggregate([
{ $unwind: "$store.promotionEvents" },
{ $sortByCount: "$store.promotionEvents.eventName" }
])
샘플 출력
[
{ "_id": "Summer Sale", "count": 152 },
{ "_id": "Black Friday", "count": 120 },
{ "_id": "Holiday Deals", "count": 98 }
]
이 파이프라인은 다음과 같은 작업을 수행합니다. 1. $unwind를 사용하여 입력 문서에서 promotionEvents 배열 필드를 분해합니다. 2. $sortByCount를 사용하여 eventName 필드를 기준으로 그룹화하고, 각 이벤트 이름의 발생 횟수를 계산하여 발생 횟수 기준의 내림차순으로 결과를 정렬합니다.
예제 2: 범주 이름별 판매량 계산 및 정렬
db.stores.aggregate([
{ $unwind: "$store.sales.salesByCategory" },
{ $sortByCount: "$store.sales.salesByCategory.categoryName" }
])
샘플 출력
[
{ "_id": "Electronics", "count": 152 },
{ "_id": "Clothing", "count": 120 },
{ "_id": "Home Goods", "count": 98 }
]
이 파이프라인은 다음과 같은 작업을 수행합니다. 1. $unwind를 사용하여 입력 문서에서 salesByCategory 배열 필드를 분해합니다. 2. $sortByCount를 사용하여 categoryName 필드를 기준으로 그룹화하고, 각 범주 이름의 발생 횟수를 계산하여 발생 횟수 기준의 내림차순으로 결과를 정렬합니다.
관련 콘텐츠
- MongoDB에서 Azure Cosmos DB for MongoDB(vCore)로 마이그레이션하기 위한 옵션 검토
- 랩 계획을 생성하여 시작합니다.