Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:
Виртуальные ядра MongoDB
Оператор $reduce
используется для применения выражения к каждому элементу в массиве и накапливать результаты в одно значение. Этот оператор особенно полезен для выполнения операций, требующих итерации элементов массива и агрегирования их значений.
Синтаксис
$reduce: {
input: <array>,
initialValue: <expression>,
in: <expression>
}
Параметры
Описание | |
---|---|
input |
Массив для итерации. |
initialValue |
Начальное накопительное значение, заданное перед началом итерации массива. |
in |
Допустимое выражение, которое вычисляет накапливаемое значение для каждого элемента в массиве. |
Пример
Давайте посмотрим, как использовать пример json из stores
набора данных.
{
"_id": "d3c9df51-41bd-4b4e-a26b-b038d9cf8b45",
"location": {
"lat": -67.7571,
"lon": 97.2505
},
"sales": {
"totalSales": 149849,
"salesByCategory": [
{
"categoryName": "DJ Speakers",
"totalSales": 36972
},
{
"categoryName": "DJ Headphones",
"totalSales": 12877
},
{
"categoryName": "Music Accessories",
"totalSales": 40000
},
{
"categoryName": "DJ Accessories",
"totalSales": 60000
}
]
},
"tag": [
"#ShopLocal",
"#FashionStore",
"#SeasonalSale",
"#FreeShipping",
"#MembershipDeals"
]
}
Пример 1. Агрегирует значения массива
В этом примере показано, $reduce
как суммировать общее количество продаж в разных категориях в массиве salesByCategory
.
db.stores.aggregate([
{ $match: { "_id": "988d2dd1-2faa-4072-b420-b91b95cbfd60"} }
, {
$project: {
totalSalesByCategory: {
$reduce: {
input: "$sales.salesByCategory.totalSales",
initialValue: 0,
in: { $add: ["$$value", "$$this"] }
}
}
}
}
])
Запрос возвращается totalSales
по категориям.
{
"_id": "988d2dd1-2faa-4072-b420-b91b95cbfd60",
"totalSalesByCategory": 149849
}
Связанный контент
- Ознакомьтесь с параметрами миграции из MongoDB в Azure Cosmos DB для MongoDB (vCore)
- Дополнительные сведения о совместимости компонентов с MongoDB