Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Operatorn $floor returnerar det största heltalet som är mindre än eller lika med det angivna talet.
Syntax
{
$floor: <number>
}
Parameterar
| Parameter | Description |
|---|---|
<number> |
Ett giltigt uttryck som matchar ett tal. |
Examples
Överväg det här exempeldokumentet från butiksamlingen.
{
"_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
}
]
}
]
}
Exempel 1 – Beräkna golvet för total försäljning och rabatter
För att beräkna golvet för den genomsnittliga försäljningsvolymen för en given butik och golvet för försäljningen per kategori, kör en fråga med operatorn $floor för att få önskat resultat.
db.stores.aggregate([{
$match: {
_id: "40d6f4d7-50cd-4929-9a07-0a7a133c2e74"
}
},
{
$project: {
name: 1,
averageSalesFloor: {
$floor: {
$divide: [
"$sales.totalSales",
{
$size: "$sales.salesByCategory"
}
]
}
},
categoriesWithFloorSales: {
$map: {
input: "$sales.salesByCategory",
as: "category",
in: {
categoryName: "$$category.categoryName",
floorSales: {
$floor: "$$category.totalSales"
}
}
}
}
}
}
])
Den här frågan returnerar följande resultat:
[
{
"_id": "40d6f4d7-50cd-4929-9a07-0a7a133c2e74",
"name": "Proseware, Inc. | Home Entertainment Hub - East Linwoodbury",
"averageSalesFloor": 30372,
"categoriesWithFloorSales": [
{
"categoryName": "Sound Bars",
"floorSales": 2120
},
{
"categoryName": "Home Theater Projectors",
"floorSales": 45004
},
{
"categoryName": "Game Controllers",
"floorSales": 43522
},
{
"categoryName": "Remote Controls",
"floorSales": 28946
},
{
"categoryName": "VR Games",
"floorSales": 32272
}
]
}
]