Поделиться через


$collStats

Этап $collStats в конвейере агрегирования используется для возврата статистики о коллекции. Этот этап может быть особенно полезным для понимания характеристик производительности коллекции, таких как количество документов, размер коллекции и статистика хранения. В ней содержатся подробные сведения, которые могут помочь в оптимизации базы данных и мониторинге.

Синтаксис

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

Параметры

Параметр Description
latencyStats Необязательно. Указывает, следует ли включать статистику задержки. Поле histograms является логическим, указывающим, следует ли включать гистограммы данных задержки.
storageStats Необязательно. Указывает, следует ли включать статистику хранилища. Поле scale — это число, указывающее коэффициент масштабирования статистики хранилища.
count Необязательно. Включает количество документов в коллекции.

Примеры

Рассмотрим этот пример документа из коллекции магазинов.

{
    "_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
                }
            ]
        }
    ]
}

Пример. Базовая статистика сбора

Этот запрос подсчитывает все документы в коллекции хранилищ.

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

Этот запрос возвращает следующий результат:

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