Anteckning
Å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.
GÄLLER FÖR:
MongoDB vCore
Operatorn $sortArray
används för att sortera elementen i en matris. Den här operatorn kan vara särskilt 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
Syntaxen för operatorn $sortArray
är följande:
{
$sortArray: {
input: <arrayExpression>,
sortBy: <sortSpecification>
}
}
Parametrar
beskrivning | |
---|---|
input |
Matrisen som ska sorteras. |
sortBy |
Anger sorteringsordningen. Detta kan vara ett enda fält eller flera fält med motsvarande sorteringsordning (1 för stigande, -1 för fallande). |
Exempel
Nu ska vi förstå användningen med exempel-json från stores
datauppsättningen.
{
"_id": "d3c9df51-41bd-4b4e-a26b-b038d9cf8b45",
"location": {
"lat": -67.7571,
"lon": 97.2505
},
"sales": {
"totalSales": 149849,
"salesByCategory": [
{
"categoryName": "DJ Speakers",
"totalSales": 36972
},
{
"categoryName": "DJ Headphones",
"totalSales": 12877
},
{
"categoryName": "Music Accessories",
"totalSales": 40000
},
{
"categoryName": "DJ Accessories",
"totalSales": 60000
}
]
},
"tag": [
"#ShopLocal",
"#FashionStore",
"#SeasonalSale",
"#FreeShipping",
"#MembershipDeals"
]
}
Exempel 1: Sortera en matris med inbäddade dokument
Exempelfrå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 }
}
}
}
}
])
Frågan returnerar matriselement sorterade totalSales
efter för exempel-json.
{
"_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 migrering från MongoDB till Azure Cosmos DB for MongoDB (vCore) – Läs mer om funktionskompatibilitet med MongoDB.