Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Оператор $[] в Azure Cosmos DB для виртуального ядра MongoDB используется для обновления всех элементов массива, соответствующего указанному условию. Этот оператор позволяет выполнять обновления для нескольких элементов массива без указания их позиций. Это особенно полезно, если необходимо применить одно и то же обновление ко всем элементам в массиве.
Синтаксис
Синтаксис для использования оператора обновления массива $[] выглядит следующим образом:
db.collection.update(
<query>,
{
$set: {
"<arrayField>.$[]": <value>
}
}
)
Параметры
Параметр | Описание |
---|---|
<query> |
Критерии выбора для обновляемых документов. |
<arrayField> |
Поле, содержащее массив для обновления. |
<value> |
Значение, заданное для каждого соответствующего элемента в массиве. |
Примеры
Пример 1. Обновление процентных значений скидки
Предположим, вы хотите обновить процент скидки для всех категорий в мероприятии по продвижению "Летняя продажа". Для этого можно использовать оператор $[]:
db.stores.update(
{ "store.storeId": "12345", "store.promotionEvents.eventName": "Summer Sale" },
{
$set: {
"store.promotionEvents.$[event].discounts.$[].discountPercentage": 5
}
},
{
arrayFilters: [{ "event.eventName": "Summer Sale" }]
}
)
Пример 2. Обновление продаж по категориям
Если вы хотите увеличить общий объем продаж для всех категорий на 10%, можно использовать оператор $[] следующим образом:
db.stores.update(
{ "store.storeId": "12345" },
{
$mul: {
"store.sales.salesByCategory.$[].totalSales": 1.10
}
}
)
Связанный контент
- Ознакомьтесь с вариантами миграции из MongoDB в Azure Cosmos DB для MongoDB (vCore)
- Дополнительные сведения о совместимости компонентов с MongoDB