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 $concatArrays
används för att kombinera flera matriser i en enda matris. Den här operatorn är användbar när du behöver sammanfoga matriser från olika dokument eller fält i ett dokument.
Syntax
Syntaxen för operatorn $concatArrays
är följande:
{
"$concatArrays": [ "<array1>", "<array2>"]
}
Parametrar
beskrivning | |
---|---|
<array1>, <array2> |
Matrisfälten som är avsedda för sammanfogning. |
Exempel
Nu ska vi förstå användningen med exempel-json från stores
datauppsättningen.
{
"_id": "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5",
"name": "Lakeshore Retail | DJ Equipment Stop - Port Cecile",
"location": { "lat": 60.1441, "lon": -141.5012 },
"staff": { "totalStaff": { "fullTime": 2, "partTime": 0 } },
"sales": {
"salesByCategory": [
{ "categoryName": "DJ Headphones", "totalSales": 35921 },
{ "categoryName": "DJ Cables", "totalSales": 1000 }
],
"fullSales": 3700
},
"promotionEvents": [
{
"eventName": "Bargain Blitz Days",
"promotionalDates": {
"startDate": { "Year": 2024, "Month": 3, "Day": 11 },
"endDate": { "Year": 2024, "Month": 2, "Day": 18 }
},
"discounts": [
{ "categoryName": "DJ Turntables", "discountPercentage": 18 },
{ "categoryName": "DJ Mixers", "discountPercentage": 15 }
]
},
{
"eventName": "Discount Delight Days",
"promotionalDates": {
"startDate": { "Year": 2024, "Month": 5, "Day": 11 },
"endDate": { "Year": 2024, "Month": 5, "Day": 18 }
}
}
],
"tag": [
"#ShopLocal",
"#FashionStore",
"#SeasonalSale",
"#FreeShipping",
"#MembershipDeals"
]
}
Exempel 1: Sammanfoga matriser i ett dokument
Exempelpipelinen sammanfogar categoryName
fältet från matrisen promotionEvents.discounts
med matrisen tag
till en enda kombineradTags-matris.
db.stores.aggregate([
{ $match: { _id: '7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5' } }
,{ $project: { combinedTags: { $concatArrays: ["$promotionEvents.discounts.categoryName", "$tag"] } } }
])
Frågan returnerar matriserna och categoryName
sammanfogas tags
som en enskild matris från dokumentet.
{
"_id": "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5",
"combinedTags": [
[ "DJ Turntables", "DJ Mixers" ],
"#ShopLocal",
"#FashionStore",
"#SeasonalSale",
"#FreeShipping",
"#MembershipDeals"
]
}
Relaterat innehåll
- Granska alternativ för migrering från MongoDB till Azure Cosmos DB för MongoDB (virtuell kärna)
- Läs mer om funktionskompatibilitet med MongoDB