Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De $map operator wordt gebruikt om een expressie toe te passen op elk element in een matrix en een matrix met de toegepaste resultaten te retourneren. Deze operator is handig voor het transformeren van matrices in documenten, zoals het wijzigen van elk element of het extraheren van specifieke velden.
Syntaxis
{
$map: {
input: <array>,
as: <variable>,
in: <expression>
}
}
Parameterwaarden
| Kenmerk | Description |
|---|---|
input |
De matrix verwerkt door de expressie. |
as |
De variabelenaam voor elk element in de matrix. |
in |
De expressie die moet worden toegepast op elk element. |
Voorbeelden
Bekijk dit voorbeelddocument uit de winkelverzameling.
{
"_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"
]
}
Voorbeeld 1: Categorienamen extraheren
Met deze query wordt de stores verzameling gefilterd, _idwaarna een nieuw veld categoryNames wordt geprojecteerd waarbij elk element in de matrix salesByCategory de totale verkoop met 500 heeft verhoogd met behulp van de operator $map.
db.stores.aggregate([{
$match: {
_id: "988d2dd1-2faa-4072-b420-b91b95cbfd60"
}
},
{
$project: {
categoryNames: {
$map: {
input: "$sales.salesByCategory.totalSales",
as: "category",
in: {
$add: ["$$category", 500]
}
}
}
}
}
])
Deze query retourneert het volgende resultaat.
[
{
"_id": "988d2dd1-2faa-4072-b420-b91b95cbfd60",
"categoryNames": [
13737,
44815,
42595,
48412,
49160,
31939,
39333
]
}
]
Verwante inhoud
- Bekijk de opties voor het migreren van MongoDB naar Azure DocumentDB.
- Lees meer over functiecompatibiliteit met MongoDB.