Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
El $pullAll operador se usa para quitar todas las instancias de los valores especificados de una matriz. Este operador es útil cuando necesita limpiar matrices quitando varios elementos específicos en una sola operación.
Tanto $pull como $pullAll se usan para quitar elementos de una matriz, pero difieren en cómo identifican los elementos que se van a quitar.
$pull quita todos los elementos de una matriz que coinciden con una condición específica, que puede ser un valor simple o una consulta más compleja (como los campos de subdocumento coincidentes). Por otro lado, $pullAll quita valores específicos proporcionados como una matriz de coincidencias exactas, pero no admite condiciones ni consultas. Básicamente, $pull es más flexible, ya que permite la eliminación condicional basada en varios criterios, mientras $pullAll que es más sencillo, trabajando solo con un conjunto fijo de valores.
Syntax
{
$pullAll: { <field1>: [ <value1>, <value2>] }
}
Parámetros
| Parámetro | Description |
|---|---|
<field1> |
Campo donde se quitarán los valores especificados. |
[ <value1>, <value2>, ... ] |
Matriz de valores que se van a quitar del campo especificado. |
Examples
Considere este documento de ejemplo de la colección de tiendas.
{
"_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
}
]
}
]
}
Ejemplo 1: Quitar varios elementos de una matriz
Para quitar los descuentos de "#MembershipDeals" y "#SeasonalSale" de la matriz "tag", ejecute una consulta mediante el operador $pulAll en el campo de etiqueta con los valores que se van a quitar.
db.stores.updateMany(
//filter
{ _id: "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5"},
{
$pullAll: {
tag: ["#MembershipDeals","#SeasonalSale" ]
}
}
)
Esta consulta devuelve el resultado siguiente.
[
{
"acknowledged": true,
"insertedId": null,
"matchedCount": 1,
"modifiedCount": 1,
"upsertedCount": 0
}
]
Contenido relacionado
- Revise las opciones para migrar de MongoDB a Azure DocumentDB.
- Obtenga más información sobre la compatibilidad de características con MongoDB.