$ceil

$ceil işleci, giriş numarasının tavanını hesaplar. Bu işleç, girişten büyük veya girişe eşit en küçük tamsayı değerini döndürür.

Sözdizimi

{
  $ceil: <number>
}

Parametreler

Parametre Description
<number> Tavanı döndürülmesi gereken giriş numarası. Null veya eksik bir alan için $ceil null döndürür.

Örnekler

Stores koleksiyonundaki bu örnek belgeyi göz önünde bulundurun.

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

Örnek 1 - Çalışan başına ortalama satış hacminin tavanını hesaplama

Çalışan başına satış hacminin tavanını hesaplamak için, önce mağazanın toplam satışlarını personel sayısına bölmek üzere bir sorgu çalıştırın. Ardından, hesaplanan değerin tavanını döndürmek için $ceil işlecini kullanın.

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"]
                        }
                    ]
                }
            }
        }
    }
])

Bu sorgu aşağıdaki sonucu döndürür:

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