Результаты вложенной подгруппы агрегации с инфраструктурой агрегирования Mongodb - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть набор данных с показателями, собранными из группы датчиков. Мой набор данных выглядит так:

{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"
        }
      }
      }
    }
  ]);

Любая помощь будет высоко оценена.

...