У меня есть две таблицы SQL, к которым я присоединяюсь - одна ко многим отношениям. Запрос запрашивается моим сервером node.JS, и мне нужно проанализировать эту информацию в JSON, который для каждой повторяющейся строки мне нужно вставить данные в массив. или же я мог бы запросить таблицы отдельно без объединения, если это более удобно для решения, если я получаю JSON, который мне нужен.
Я еще никогда ничего не пробовал, потому что я не знаю, с чего начать, я думал о map или уменьшении функций, которые могли бы помочь, но map возвращает то же количество объектов в массив, а при уменьшении уменьшает их до одного ...
Допустим, первая таблица является таблицей Person и дает мне json примерно так:
[
{id:1,name:dani},
{id:2,name:dana},
{id:3,name:dan},
]
, а во второй таблице есть внешний ключ для этого человека и собака, связанная с этим владельцем:
[
{onwerId:1,dogName:Blacky},
{onwerId:1,dogName:Whitey},
{onwerId:2,dogName:Greeny},
]
и если я запрашиваю объединенные таблицы (нет необходимости в дублировании onwerId и id), я могу получить:
[
{id:1,name:dani,dogName:Blacky},
{id:1,name:dani,dogName:Whitey},
{id:2,name:dana,dogName:Greeny},
{id:3,name:dan,dogName:NULL},
]
Проблема в том, что я не хочу, чтобы Дани появлялся дважды.
Я хочу, чтобы для каждого идентичного идентификатора человека был массив собак, поэтому результат будет выглядеть так:
[
{id:1,name:dani,dogs:[{dogName:Blacky},{dogName:Whitey}]},
{id:2,name:dana,dogs:[{dogName:Greeny}]},
{id:3,name:dan,dogs:[]}
]
что касается лица с идентификатором 3 в примере - я не против, чтобы оно было NULL вместо пустого массива.