$ceil

Az $ceil operátor kiszámítja a bemeneti szám felső határát. Ez az operátor a legkisebb egész számot adja vissza, amely nagyobb vagy egyenlő a bemenettel.

Szemantika

{
  $ceil: <number>
}

Paraméterek

Paraméter Description
<number> Az a bemeneti szám, amelynek a felső határát vissza kell adni. Null vagy hiányzó mező esetén $ceil null értéket ad vissza.

Példák

Tekintse át ezt a mintadokumentumot az áruházak gyűjteményéből.

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

1. példa – Az egy alkalmazottra jutó átlagos értékesítési mennyiség felső határának kiszámítása

Az egy alkalmazottra jutó értékesítési mennyiség felső határának kiszámításához először futtasson egy lekérdezést, amely elosztja az áruház teljes értékesítését az alkalmazottak számával. Ezután a $ceil operátorral adja vissza a számított érték felső határát.

db.stores.aggregate([{
        $match: {
            _id: "40d6f4d7-50cd-4929-9a07-0a7a133c2e74"
        }
    },
    {
        $project: {
            name: 1,
            totalSales: "$sales.totalSales",
            totalStaff: {
                $add: ["$staff.totalStaff.fullTime", "$staff.totalStaff.partTime"]
            },
            ceiledAverageSalesPerStaff: {
                $ceil: {
                    $divide: [
                        "$sales.totalSales",
                        {
                            $add: ["$staff.totalStaff.fullTime", "$staff.totalStaff.partTime"]
                        }
                    ]
                }
            }
        }
    }
])

Ez a lekérdezés a következő eredményt adja vissza:

[
  {
    "_id": "40d6f4d7-50cd-4929-9a07-0a7a133c2e74",
    "name": "Proseware, Inc. | Home Entertainment Hub - East Linwoodbury",
    "totalSales": 151864,
    "totalStaff": 39,
    "ceiledAverageSalesPerStaff": 3894
  }
]