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 $map används för att tillämpa ett uttryck på varje element i en matris och returnera en matris med de tillämpade resultaten. Den här operatorn är användbar för att transformera matriser i dokument, till exempel ändra varje element eller extrahera specifika fält.
Syntax
{
$map: {
input: <array>,
as: <variable>,
in: <expression>
}
}
Parameterar
| Parameter | Description |
|---|---|
input |
Matrisen som bearbetas av uttrycket. |
as |
Variabelnamnet för varje element i matrisen. |
in |
Uttrycket som ska tillämpas på varje element. |
Examples
Överväg det här exempeldokumentet från butiksamlingen.
{
"_id": "988d2dd1-2faa-4072-b420-b91b95cbfd60",
"name": "Lakeshore Retail",
"location": {
"lat": -51.3041,
"lon": -166.0838
},
"staff": {
"totalStaff": {
"fullTime": 5,
"partTime": 20
}
},
"sales": {
"totalSales": 266491,
"salesByCategory": [
{
"categoryName": "Towel Racks",
"totalSales": 13237
},
{
"categoryName": "Washcloths",
"totalSales": 44315
},
{
"categoryName": "Face Towels",
"totalSales": 42095
},
{
"categoryName": "Toothbrush Holders",
"totalSales": 47912
},
{
"categoryName": "Hybrid Mattresses",
"totalSales": 48660
},
{
"categoryName": "Napkins",
"totalSales": 31439
},
{
"categoryName": "Pillow Cases",
"totalSales": 38833
}
]
},
"tag": [
"#ShopLocal",
"#FashionStore",
"#SeasonalSale",
"#FreeShipping",
"#MembershipDeals"
]
}
Exempel 1: Extrahera kategorinamn
Den här frågan filtrerar stores samlingen för _idoch projicerar sedan ett nytt fält categoryNames där varje element i matrisen salesByCategory får sin totalförsäljning ökad med 500 med operatorn $map.
db.stores.aggregate([{
$match: {
_id: "988d2dd1-2faa-4072-b420-b91b95cbfd60"
}
},
{
$project: {
categoryNames: {
$map: {
input: "$sales.salesByCategory.totalSales",
as: "category",
in: {
$add: ["$$category", 500]
}
}
}
}
}
])
Den här frågan returnerar följande resultat.
[
{
"_id": "988d2dd1-2faa-4072-b420-b91b95cbfd60",
"categoryNames": [
13737,
44815,
42595,
48412,
49160,
31939,
39333
]
}
]
Relaterat innehåll
- Granska alternativen för att migrera från MongoDB till Azure DocumentDB.
- Läs mer om funktionskompatibilitet med MongoDB.