Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der $pullAll Operator wird verwendet, um alle Instanzen der angegebenen Werte aus einem Array zu entfernen. Dieser Operator ist nützlich, wenn Sie Arrays bereinigen müssen, indem Sie mehrere bestimmte Elemente in einem einzigen Vorgang entfernen.
Beide und $pull$pullAll werden verwendet, um Elemente aus einem Array zu entfernen, aber sie unterscheiden sich darin, wie sie die zu entfernenden Elemente identifizieren.
$pull entfernt alle Elemente aus einem Array, die einer bestimmten Bedingung entsprechen, bei der es sich um einen einfachen Wert oder eine komplexere Abfrage (z. B. übereinstimmende Unterdokumentfelder) handeln kann. Auf der anderen Seite werden bestimmte Werte entfernt, $pullAll die als Array exakter Übereinstimmungen bereitgestellt werden, aber es werden keine Bedingungen oder Abfragen unterstützt. Im Wesentlichen ist es flexibler, da es die $pull bedingte Entfernung basierend auf verschiedenen Kriterien ermöglicht, während $pullAll es einfacher ist, nur mit einer festen Gruppe von Werten zu arbeiten.
Syntax
{
$pullAll: { <field1>: [ <value1>, <value2>] }
}
Die Parameter
| Parameter | Description |
|---|---|
<field1> |
Das Feld, in dem die angegebenen Werte entfernt werden. |
[ <value1>, <value2>, ... ] |
Ein Array von Werten, die aus dem angegebenen Feld entfernt werden sollen. |
Examples
Betrachten Sie dieses Beispieldokument aus der Stores-Sammlung.
{
"_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
}
]
}
]
}
Beispiel 1: Entfernen mehrerer Elemente aus einem Array
Um die Rabatte für "#MembershipDeals" und "#SeasonalSale" aus dem Array "tag" zu entfernen, führen Sie eine Abfrage mit dem Operator $pulAll im Tagfeld mit den zu entfernenden Werten aus.
db.stores.updateMany(
//filter
{ _id: "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5"},
{
$pullAll: {
tag: ["#MembershipDeals","#SeasonalSale" ]
}
}
)
Diese Abfrage gibt das folgende Ergebnis zurück.
[
{
"acknowledged": true,
"insertedId": null,
"matchedCount": 1,
"modifiedCount": 1,
"upsertedCount": 0
}
]
Verwandte Inhalte
- Überprüfen Sie die Optionen für die Migration von MongoDB zu Azure DocumentDB.
- Weitere Informationen zur Featurekompatibilität mit MongoDB.