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 $range används för att generera en matris med sekventiella heltal. Operatorn hjälper till att skapa talmatriser i ett intervall som är användbart för sidnumrering, indexering eller testdata.
Syntax
{
$range: [ <start>, <end>, <step> ]
}
Parameterar
| Parameter | Description |
|---|---|
start |
Startvärdet för intervallet (inklusive). |
end |
Slutvärdet för intervallet (exklusivt). |
step |
Inkrementsvärdet mellan varje tal i intervallet (valfritt, standardvärdet är 1). |
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: Generera ett intervall med tal
Den här frågan visar användningen av operatorn för att generera en matris med heltal från 0 till 5, där den innehåller den vänstra gränsen medan den utesluter höger.
db.stores.aggregate([{
$match: {
_id: "a715ab0f-4c6e-4e9d-a812-f2fab11ce0b6"
}
}, {
$project: {
rangeArray: {
$range: [0, 5]
}
}
}])
Den här frågan returnerar följande resultat.
[
{
"_id": "a715ab0f-4c6e-4e9d-a812-f2fab11ce0b6",
"rangeArray": [
0,
1,
2,
3,
4
]
}
]
Exempel 2: Generera ett intervall med tal med ett stegvärde
Den här frågan visar hur operatorn används för att generera en matris med jämna tal från 0 till 18.
db.stores.aggregate([{
$match: {
_id: "a715ab0f-4c6e-4e9d-a812-f2fab11ce0b6"
}
}, {
$project: {
evenNumbers: {
$range: [0, 8, 2]
}
}
}])
Den här frågan resulterar i följande resultat.
[
{
"_id": "a715ab0f-4c6e-4e9d-a812-f2fab11ce0b6",
"rangeArray": [
0,
2,
4,
6
]
}
]