У меня есть набор данных:
Branch Status Product_Category Number_Of_Clients Amount
----------------------------------------------------------------
1 Ongoing Product1 20 500
2 Not_Started Product2 30 600
Существуют сотни филиалов, несколько типов статуса, 6 категорий товаров.
Что мне нужно сделать, так это для каждой ветви, сгруппировать каждый тип «Product_Category», подсчитать количество различных «Status», сложить «Number_Of_Clientes» и добавить все «Amount».
Используя конвейер агрегации на Compass, я сначала попытался сгруппировать по веткам:
{
_id: '$Branch',
set_branch: {
$addToSet: '$_id'
},
count_branch_documents: {
$sum: 1
}
}
Я получаю количество документов с одной и той же веткой, но у меня возникают проблемы с попыткой подсчитать другой статус для этой ветки, а затем мне нужно добавить количество клиентов и суммировать суммы.
Я пробовал группировать так же, как и $count
и $sum
, но я не получаю то, что хочу.
Мой идеальный вывод будет выглядеть примерно так:
Branch: 1
Count_Branches: 2
Product_Category:
Product: Product1
Status:
Ongoing: 2
Not_Started: 5
Total_Number_Of_Clients: 7
Total_Amount: 500
Product: Product2
Status:
Ongoing: 3
Not_Started: 2
Total_Number_Of_Clients: 5
Total_Amount: 600
Моя конечная цель - перевести это в другую коллекцию.
Любая помощь очень ценится!