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 $each används inom en $addToSet eller-åtgärd $push för att lägga till flera element i ett matrisfält i en enda uppdateringsåtgärd. Den här operatorn är användbar när du behöver infoga flera objekt i en matris utan att behöva utföra flera uppdateringsåtgärder. Operatorn $each ser till att varje objekt i den angivna matrisen läggs till i målmatrisen.
Syntax
{
$push: {
<field>: {
$each: [ <value1>, <value2>],
<modifier1>: <value1>,
<modifier2>: <value2>
}
}
}
Parameterar
| Parameter | Description |
|---|---|
<field> |
Fältet som ska uppdateras. |
$each |
En matris med värden som ska läggas till i matrisfältet. |
<modifier> |
Valfria modifierare som $sort, $sliceoch $position för att styra beteendet för åtgärden $push . |
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: Lägga till flera element i en matris
Den här frågan lägger till flera nya kampanjhändelser i matrisen promotionEvents .
db.stores.updateOne({
name: "Lenore's New DJ Equipment Store"
}, {
$push: {
promotionEvents: {
$each: [{
eventName: "Grand Savings",
promotionalDates: {
startDate: "2024-08-01",
endDate: "2024-08-31"
},
discounts: [{
categoryName: "DJ Headphones",
discountPercentage: 5
}]
},
{
eventName: "Big Bargain",
promotionalDates: {
startDate: "2024-11-25",
endDate: "2024-11-30"
},
discounts: [{
categoryName: "DJ Headphones",
discountPercentage: 20
}]
}
]
}
}
})
Den här frågan returnerar följande resultat.
[
{
"acknowledged": true,
"insertedId": null,
"matchedCount": "0",
"modifiedCount": "0",
"upsertedCount": 0
}
]
Relaterat innehåll
- Granska alternativen för att migrera från MongoDB till Azure DocumentDB.
- Läs mer om funktionskompatibilitet med MongoDB.