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 $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
Syntaxen för operatorn $pullAll
är följande:
{
$pullAll: { <field1>: [ <value1>, <value2>, ... ], ... }
}
Parametrar
beskrivning | |
---|---|
<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. |
Exempel
Nu ska vi förstå användningen med följande exempel-json.
{
"_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
}
],
"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
}
]
}
],
"tag": [
"#ShopLocal",
"#SeasonalSale",
"#FreeShipping",
"#MembershipDeals"
]
}
Ta bort rabatterna för "#MembershipDeals" och "#SeasonalSale" från matrisen "tag".
db.stores.updateMany(
//filter
{ "_id": "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5"},
{
$pullAll: {
"tag": ["#MembershipDeals","#SeasonalSale" ]
}
}
)
Den här frågan returnerar följande dokument.
{
"acknowledged": true,
"insertedId": null,
"matchedCount": 1,
"modifiedCount": 1,
"upsertedCount": 0
}
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