$collStats

La phase $collStats dans le pipeline d’agrégation permet de retourner des statistiques sur une collection. Cette phase peut être particulièrement utile pour comprendre les caractéristiques en matière de performances d’une collection, notamment le nombre de documents, la taille de la collection et les statistiques de stockage. Il fournit des informations détaillées qui peuvent vous aider à optimiser et à surveiller la base de données.

Syntaxe

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

Paramètres

Paramètre Descriptif
latencyStats Optional. Spécifie s’il faut inclure des statistiques de latence. Le champ histograms est une valeur booléenne qui indique s’il faut inclure des histogrammes de données de latence.
storageStats Optional. Spécifie s’il faut inclure des statistiques de stockage. Le champ scale est un nombre qui indique le facteur d’échelle pour les statistiques de stockage.
count Optional. Inclut le nombre de documents dans la collection.

Examples

Considérez cet exemple de document de la collection des magasins.

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

Exemple : Statistiques de collecte de base

Cette requête compte tous les documents de la collection de magasins.

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

Cette requête retourne le résultat suivant :

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