Я пытаюсь построить диаграмму с накоплением столбцов с накоплением , отображающую количество кнопок в одной категории таблицы.Для этого я построил следующую агрегацию в mongodb:
var pipeline = [
{
$group: {
_id: {tableId: "$tableId", buttonId: "$buttonId"},
count: {
$sum: 1
}
}
}
];
Это дает мне объект JSON со следующей иерархией:
0:
count: 5
_id:
buttonId: "buttonId1"
tableId: "Table1"
Я пытаюсь перенести это вформат, подходящий для высоких графиков, что-то вроде этого:
var buttonPerTable = [{
name: 'buttonId1',
data: [5, 3, 4]
}, {
name: 'buttonId2',
data: [2, 2, 3]
}, {
name: 'buttonId3',
data: [3, 4, 4]
}]
var tableList = ["Table1","Table2","Table3"]
Это то, что я пробовал, но я не могу понять, как это сделать правильно, я не могу получить данныев желаемый формат:
var activityPerTable = [];
var tableList = [];
result.forEach(function(call, i) {
buttonId = call._id.buttonId
activityPerTable[buttonId] = []
activityPerTable[buttonId].data = []
activityPerTable[buttonId].name = buttonId;
activityPerTable[buttonId].data.push(call.count);
tableList.push(call._id.tableId);
});
tableList = Utils.uniqueArray(tableList);
Любая помощь будет оценена.
Редактировать:
Вот кусок объекта JSON:
[
{
"_id": {
"tableId": "table1",
"buttonId": "buttonId1"
},
"count": 1
},
{
"_id": {
"tableId": "table2",
"buttonId": "buttonId3"
},
"count": 10
},
{
"_id": {
"tableId": "table2",
"buttonId": "buttonId1"
},
"count": 12
},
{
"_id": {
"tableId": "table1",
"buttonId": "buttonId2"
},
"count": 8
},
{
"_id": {
"tableId": "table1",
"buttonId": "buttonId2"
},
"count": 2
},
{
"_id": {
"tableId": "table3",
"buttonId": "buttonId1"
},
"count": 3
},
{
"_id": {
"tableId": "table3",
"buttonId": "buttonId2"
},
"count": 6
}
]