Condividi tramite


$trunc

L'operatore $trunc tronca un numero in una posizione decimale specificata.

Sintassi

{
  $trunc: [ <number>, <decimal place> ]
}

Parametri

Parametro Description
<number> Numero da troncare.
<decimal place> Posizione decimale in cui troncare il numero specificato. Un valore positivo tronca a destra del separatore decimale e un valore negativo tronca a sinistra del separatore decimale.

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 1 - Recuperare le coordinate della posizione troncate

Per recuperare le coordinate troncate dei punti vendita all'interno della società "First Up Consultants", eseguire prima una query per filtrare gli archivi in base al nome della società. Usare quindi l'operatore $trunc nei campi latitudine e longitudine per restituire il risultato desiderato.

db.stores.aggregate([
  {
    $project: {
      truncatedLat: { $trunc: ["$location.lat", 2] }
    }
  }
])

I primi tre risultati restituiti dalla query sono:

[
    {
        "_id": "39acb3aa-f350-41cb-9279-9e34c004415a",
        "name": "First Up Consultants | Bed and Bath Pantry - Port Antone",
        "location": {
            "lat": 87.2239,
            "lon": -129.0506
        },
        "truncatedLatitute": 87,
        "truncatedLongitude": -129
    },
    {
        "_id": "26afb024-53c7-4e94-988c-5eede72277d5",
        "name": "First Up Consultants | Microphone Bazaar - South Lexusland",
        "location": {
            "lat": -29.1866,
            "lon": -112.7858
        },
        "truncatedLatitute": -29,
        "truncatedLongitude": -112
    },
    {
        "_id": "62438f5f-0c56-4a21-8c6c-6bfa479494ad",
        "name": "First Up Consultants | Plumbing Supply Shoppe - New Ubaldofort",
        "location": {
            "lat": -0.2136,
            "lon": 108.7466
        },
        "truncatedLatitute": 0,
        "truncatedLongitude": 108
    }
]