$collStats

La fase $collStats nella pipeline di aggregazione viene usata per restituire statistiche su una raccolta. Questa fase può essere particolarmente utile per comprendere le caratteristiche delle prestazioni di una raccolta, ad esempio il numero di documenti, le dimensioni della raccolta e le statistiche di archiviazione. Fornisce informazioni dettagliate che possono essere utili per l'ottimizzazione e il monitoraggio del database.

Sintassi

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

Parametri

Parametro Description
latencyStats Optional. Specifica se includere statistiche di latenza. Il campo histograms è un valore booleano che indica se includere istogrammi di dati di latenza.
storageStats Optional. Specifica se includere le statistiche di archiviazione. Il campo scale è un numero che indica il fattore di scala per le statistiche di archiviazione.
count Optional. Include il conteggio dei documenti nella raccolta.

Esempi

Si consideri questo documento di esempio dalla raccolta negozi.

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

Esempio: Statistiche di raccolta di base

Questa query conta tutti i documenti nell'insieme stores.

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

Questa query restituisce il risultato seguente:

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