Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Оператор обновления массива $[identifier] в Azure Cosmos DB для виртуального ядра MongoDB используется для обновления определенных элементов в массиве, соответствующего заданному условию. Этот оператор особенно полезен, если необходимо обновить несколько элементов в массиве на основе определенных критериев. Это позволяет более детализировать обновления в документах, что делает его мощным инструментом для управления сложными структурами данных.
javascript
{
"<update operator>": {
"<array field>.$[<identifier>]": <value>
}
},
{
"arrayFilters": [
{ "<identifier>.<field>": <condition> }
]
}
Параметры
Параметр | Описание |
---|---|
<update operator> |
Оператор обновления, применяемый (например, $set , $inc и т. д.). |
<array field> |
Поле, содержащее массив для обновления. |
<identifier> |
Заполнитель, используемый для arrayFilters сопоставления определенных элементов в массиве. |
<value> |
Значение, которое необходимо задать или обновить. |
arrayFilters |
Массив условий фильтрации для определения элементов для обновления. |
<field> |
Проверяемое поле в элементах массива. |
<condition> |
Условие обновления элементов массива. |
Примеры
Пример 1. Обновление процента скидки для конкретной категории
Предположим, вы хотите обновить процент скидки для категории "Ноутбуки" в мероприятии "Праздничные специальные".
db.collection.update(
{ "store.storeId": "12345", "store.promotionEvents.eventName": "Holiday Specials" },
{
$set: {
"store.promotionEvents.$[event].discounts.$[discount].discountPercentage": 18
}
},
{
arrayFilters: [
{ "event.eventName": "Holiday Specials" },
{ "discount.categoryName": "Laptops" }
]
}
)
Пример 2. Увеличение общего объема продаж по категориям
Предположим, вы хотите увеличить общий объем продаж для категории "Смартфоны" на $ 10000.
db.collection.update(
{ "store.storeId": "12345" },
{
$inc: {
"store.sales.salesByCategory.$[category].totalSales": 10000
}
},
{
arrayFilters: [
{ "category.categoryName": "Smartphones" }
]
}
)
Связанный контент
- Ознакомьтесь с вариантами миграции из MongoDB в Azure Cosmos DB для MongoDB (vCore)
- Дополнительные сведения о совместимости компонентов с MongoDB