Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Оператор $pullAll используется для удаления всех экземпляров указанных значений из массива. Этот оператор полезен, если необходимо очистить массивы, удалив несколько определенных элементов в одной операции.
Оба $pull и $pullAll используются для удаления элементов из массива, но они отличаются в том, как они определяют элементы для удаления.
$pull удаляет все элементы из массива, соответствующего определенному условию, которое может быть простым значением или более сложным запросом (например, сопоставление полей поддокумента). С другой стороны, удаляет определенные значения, $pullAll предоставленные в виде массива точных совпадений, но не поддерживает условия или запросы. По сути, является более гибким, $pull так как позволяет условное удаление на основе различных критериев, а $pullAll проще работать только с фиксированным набором значений.
Syntax
{
$pullAll: { <field1>: [ <value1>, <value2>] }
}
Parameters
| Parameter | Description |
|---|---|
<field1> |
Поле, в котором будут удалены указанные значения. |
[ <value1>, <value2>, ... ] |
Массив значений, которые необходимо удалить из указанного поля. |
Examples
Рассмотрим этот пример документа из коллекции магазинов.
{
"_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
}
]
}
]
}
Пример 1. Удаление нескольких элементов из массива
Чтобы удалить скидки для "#MembershipDeals" и "#SeasonalSale" из массива тегов, выполните запрос с помощью оператора $pulAll в поле тега со значениями, которые нужно удалить.
db.stores.updateMany(
//filter
{ _id: "7954bd5c-9ac2-4c10-bb7a-2b79bd0963c5"},
{
$pullAll: {
tag: ["#MembershipDeals","#SeasonalSale" ]
}
}
)
Этот запрос возвращает следующий результат.
[
{
"acknowledged": true,
"insertedId": null,
"matchedCount": 1,
"modifiedCount": 1,
"upsertedCount": 0
}
]
Связанный контент
- Просмотрите параметры миграции из MongoDB в Azure DocumentDB.
- Дополнительные сведения о совместимости функций с MongoDB.