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 $pullAll används för att ta bort alla instanser av de angivna värdena från en matris. Den här operatorn är användbar när du behöver rensa matriser genom att ta bort flera specifika element i en enda åtgärd.
Både $pull och $pullAll används för att ta bort element från en matris, men de skiljer sig åt i hur de identifierar de element som ska tas bort.
$pull tar bort alla element från en matris som matchar ett visst villkor, vilket kan vara ett enkelt värde eller en mer komplex fråga (till exempel matchande underdokumentfält). Å $pullAll andra sidan tar bort specifika värden som tillhandahålls som en matris med exakta matchningar, men det stöder inte villkor eller frågor.
$pull I princip är mer flexibelt eftersom det tillåter villkorlig borttagning baserat på olika kriterier, medan $pullAll det är enklare att bara arbeta med en fast uppsättning värden.
Syntax
{
$pullAll: { <field1>: [ <value1>, <value2>] }
}
Parameterar
| Parameter | Description |
|---|---|
<field1> |
Fältet där de angivna värdena tas bort. |
[ <value1>, <value2>, ... ] |
En matris med värden som ska tas bort från det angivna fältet. |
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: Ta bort flera element från en matris
Om du vill ta bort rabatterna för "#MembershipDeals" och "#SeasonalSale" från matrisen "tag" kör du en fråga med operatorn $pulAll i taggfältet med de värden som ska tas bort.
db.stores.updateMany(
//filter
{ _id: "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5"},
{
$pullAll: {
tag: ["#MembershipDeals","#SeasonalSale" ]
}
}
)
Den här frågan returnerar följande resultat.
[
{
"acknowledged": true,
"insertedId": null,
"matchedCount": 1,
"modifiedCount": 1,
"upsertedCount": 0
}
]
Relaterat innehåll
- Granska alternativen för att migrera från MongoDB till Azure DocumentDB.
- Läs mer om funktionskompatibilitet med MongoDB.