У меня есть набор данных с показателями, собранными из группы датчиков.
Мой набор данных выглядит так:
{type: 1, display: 'foo', value: 'A'}
{type: 2, display: 'bar', value: 'B'}
{type: 2, display: 'foo', value: 'B'}
Я пытаюсь объединить результаты и получить некоторые важные сведения с помощью REST API. Я как-то пытаюсь получить агрегированные результаты как:
[{
type: 1,
displays: [
{
name: 'foo',
count: 1
}
],
values: [
{
name: 'A',
count: 1
}
],
total_count: 1
},{
type: 2,
displays: [
{
name: 'foo',
count: 1
} , {
name: 'bar',
count: 1
}
],
values: [
{
name: 'B',
count: 2
}
],
total_count: 2
}]
Подводить итоги агрегированных результатов и получать поверхностные результаты просто, я изо всех сил, так как я не могу создать вложенные счетчики для types
и displays
все вместе.
Я попытался использовать различные агрегационные операторы без удачи
В основном я могу получить одну группу по типам или отображать как:
db.logs.aggregate([
{
$group: {
_id: {
type: '$type',
display: '$display'
},
count: { $sum: 1 }
}
}, {
$group: {
_id: '$_id.type',
displays: {
$push: {
name: "$_id.display",
count: "$count"
}
}
}
}
]);
Любая помощь будет высоко оценена.