Kommentar
Å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 $[] i DocumentDB används för att uppdatera alla element i en matris som matchar ett angivet villkor. Med den här operatorn kan du utföra uppdateringar på flera element i en matris utan att ange deras positioner. Det är särskilt användbart när du behöver tillämpa samma uppdatering på alla objekt i en matris.
Syntax
db.collection.update(
<query>,
{
$set: {
<arrayField>.$[]: <value>
}
}
)
Parameterar
| Parameter | Description |
|---|---|
<query> |
Urvalskriterierna för de dokument som ska uppdateras. |
<arrayField> |
Fältet som innehåller matrisen som ska uppdateras. |
<value> |
Värdet som ska anges för varje matchande element i matrisen. |
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: Uppdatera rabattprocent
Den här frågan uppdaterar alla element i rabattmatrisen i varje kampanjhändelse.
db.stores.updateOne(
{ _id: "905d1939-e03a-413e-a9c4-221f74055aac" },
{
$inc: {
"promotionEvents.$[].discounts.$[].discountPercentage": 5
}
}
)
Exempel 2: Uppdatera försäljning efter kategori
Den här frågan ökar den totala försäljningen för alla kategorier med 10% med hjälp av operatorn $[].
db.stores.update(
{ _id: "905d1939-e03a-413e-a9c4-221f74055aac" },
{
$mul: {
"sales.salesByCategory.$[].totalSales": 1.10
}
}
)