我有一个数据集,其中包含从一组传感器收集的指标。 我的数据集如下:
{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"
}
}
}
}
]);
我们将不胜感激任何帮助。