$collStats

집계 파이프라인의 $collStats 단계는 컬렉션에 대한 통계를 반환하는 데 사용됩니다. 이 단계는 문서 수, 컬렉션 크기, 스토리지 통계 등 컬렉션의 성능 특성을 이해하는 데 특히 유용할 수 있습니다. 데이터베이스 최적화 및 모니터링에 도움이 되는 자세한 정보를 제공합니다.

문법

{
  $collStats: {
    latencyStats: { histograms: <boolean> },
    storageStats: { scale: <number> },
    count: {}
  }
}

매개 변수

매개 변수 Description
latencyStats Optional. 대기 시간 통계를 포함할지 여부를 지정합니다. 이 histograms 필드는 대기 시간 데이터의 히스토그램을 포함할지 여부를 나타내는 부울 값입니다.
storageStats Optional. 스토리지 통계를 포함할지 여부를 지정합니다. scale 필드는 스토리지 통계의 배율을 나타내는 숫자입니다.
count Optional. 컬렉션에 있는 문서의 수를 포함합니다.

예시

스토어 컬렉션에서 이 샘플 문서를 고려합니다.

{
    "_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4",
    "name": "First Up Consultants | Beverage Shop - Satterfieldmouth",
    "location": {
        "lat": -89.2384,
        "lon": -46.4012
    },
    "staff": {
        "totalStaff": {
            "fullTime": 8,
            "partTime": 20
        }
    },
    "sales": {
        "totalSales": 75670,
        "salesByCategory": [
            {
                "categoryName": "Wine Accessories",
                "totalSales": 34440
            },
            {
                "categoryName": "Bitters",
                "totalSales": 39496
            },
            {
                "categoryName": "Rum",
                "totalSales": 1734
            }
        ]
    },
    "promotionEvents": [
        {
            "eventName": "Unbeatable Bargain Bash",
            "promotionalDates": {
                "startDate": {
                    "Year": 2024,
                    "Month": 6,
                    "Day": 23
                },
                "endDate": {
                    "Year": 2024,
                    "Month": 7,
                    "Day": 2
                }
            },
            "discounts": [
                {
                    "categoryName": "Whiskey",
                    "discountPercentage": 7
                },
                {
                    "categoryName": "Bitters",
                    "discountPercentage": 15
                },
                {
                    "categoryName": "Brandy",
                    "discountPercentage": 8
                },
                {
                    "categoryName": "Sports Drinks",
                    "discountPercentage": 22
                },
                {
                    "categoryName": "Vodka",
                    "discountPercentage": 19
                }
            ]
        },
        {
            "eventName": "Steal of a Deal Days",
            "promotionalDates": {
                "startDate": {
                    "Year": 2024,
                    "Month": 9,
                    "Day": 21
                },
                "endDate": {
                    "Year": 2024,
                    "Month": 9,
                    "Day": 29
                }
            },
            "discounts": [
                {
                    "categoryName": "Organic Wine",
                    "discountPercentage": 19
                },
                {
                    "categoryName": "White Wine",
                    "discountPercentage": 20
                },
                {
                    "categoryName": "Sparkling Wine",
                    "discountPercentage": 19
                },
                {
                    "categoryName": "Whiskey",
                    "discountPercentage": 17
                },
                {
                    "categoryName": "Vodka",
                    "discountPercentage": 23
                }
            ]
        }
    ]
}

예: 기본 컬렉션 통계

이 쿼리는 Store 컬렉션의 모든 문서를 계산합니다.

db.stores.aggregate([
  {
    $collStats: {
      count: {}
    }
  }
])

이 쿼리는 다음 결과를 반환합니다.

[
  { "ns": "StoreData.stores", "count": 41505 }
]