Spring Data MongoTemplate группируют и получают в результате карту - PullRequest
0 голосов
/ 26 марта 2020

Существует способ сгруппировать данные по атрибуту моего DTO и получить в результате список типа Map<String, List<DTO>>, то есть первое поле будет значением атрибута, по которому они были сгруппированы, и в другой - список всех строк (документов), являющихся частью этого типа.

Пример использования:

class MyDTO {
    private String id;
    private String type;
    private Integer value;

    //Get and Set
}

Сбор данных:

| id | type | value |
|----|------|-------|
| 1  | x    | 2     |
| 2  | x    | 8     |
| 3  | y    | 6     |

Результат что я хочу достичь после группировки будет следующим (я представляю это как json, чтобы это понималось):

[
  {
    "type": "x",
    "data": [
      {"id": 1, "type": "x", "value": 2},
      {"id": 2, "type": "x", "value": 8}
    ]
  },
  {
    "type": "y",
    "data": [
      {"id": 3, "type": "y", "value": 2}
    ]
  }
]

В терминах java это будет структура, подобная List<Map<String, List<MyDTO>>>, в случае, если нет способа получить этот тип структуры в результате, я могу работать с обобщенным типом c как Document, но мне интересно знать, есть ли способ сгруппировать данные, которые у меня есть в таким образом, я надеюсь, что кто-то может мне помочь.

Примечание: я знаю, что могу просмотреть все документы и сгруппировать их по коду, но мне интересно знать, как я могу это сделать с MongoTemplate

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...