Not
Å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 $sortArray används för att sortera elementen i en matris. Operatorn kan vara användbar när du behöver sortera matriser i dina dokument baserat på specifika fält eller kriterier. Den kan tillämpas på matriser med inbäddade dokument eller enkla matriser med värden.
Syntax
{
$sortArray: {
input: <arrayExpression>,
sortBy: <sortSpecification>
}
}
Parameterar
| Parameter | Description |
|---|---|
input |
Matrisen som ska sorteras. |
sortBy |
Anger sorteringsordningen. Det kan vara ett enda fält eller flera fält med motsvarande sorteringsordning (1 för stigande, -1 för fallande). |
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: Sortera en matris med inbäddade dokument
Den här frågan sorterar matrisen sales.salesByCategory i varje dokument i fallande ordning baserat på totalSales.
db.stores.aggregate([{
$match: {
_id: "d3c9df51-41bd-4b4e-a26b-b038d9cf8b45"
}
}, {
$project: {
sortedSalesByCategory: {
$sortArray: {
input: "$sales.salesByCategory",
sortBy: {
totalSales: -1
}
}
}
}
}])
Den här frågan returnerar följande resultat.
[
{
"_id": "d3c9df51-41bd-4b4e-a26b-b038d9cf8b45",
"sortedSalesByCategory": [
{
"categoryName": "DJ Accessories",
"totalSales": 60000
},
{
"categoryName": "Music Accessories",
"totalSales": 40000
},
{
"categoryName": "DJ Speakers",
"totalSales": 36972
},
{
"categoryName": "DJ Headphones",
"totalSales": 12877
}
]
}
]
Relaterat innehåll
– Granska alternativen för att migrera från MongoDB till Azure DocumentDB. - Läs mer om funktionskompatibilitet med MongoDB..