Существует способ сгруппировать данные по атрибуту моего 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