У меня есть набор данных, подобный следующему
[{id:1,month:1,count:1},{id:1,month:2,count:2},{id:1,month:3,count:3}......,
{id:2,month:1,count:1},{id:2,month:2,count:2},{id:2,month:3,count:3}.......,
........
........
{id:19,month:1,count:1},{id:19,month:2,count:2},{id:19,month:3,count:3}.......,]
, и таблица выглядит следующим образом.
|id|month|count|
|1 | 1 | 1 |
.............
.........
|19| 12 | 4 |
есть еще один id как divisonId, и он отображается на идентификаторы выше, как показано ниже
{1:[1,2,4,5],2:[3,6,8,9],3:[7,10,....19]}
, и таблица сопоставления выглядит следующим образом.
|divisionId| id|
| 1 | 1 |
| 1 | 2 |
| 1 | 4 |
| 1 | 5 |
| 2 | 3 |
| 2 | 6 |
......
......
, поэтому теперь мне нужно объединить данные, суммировать и перегруппировать их в соответствии с divisonIds.
, поэтому в конечном итоге возвращаемые данные должны выглядеть следующим образом
[{divsionId:1,month:1,count:19},{divisionId:1,month:2,count:53},{divisionId:1,month:3,count:66}......,
{divisionId:2,month:1,count:21},{divisionId:2,month:2,count:82},{divisionId:2,month:3,count:63}.......,
{divisionId:3,month:1,count:1},{divisionId:3,month:2,count:2},{divisionId:3,month:3,count:3}.......,]
, а таблица должна выглядеть следующим образом:
| divisionId| month | count |
| 1 | 1 | 200 |
| 1 | 2 | 400 |
| 1 | 3 | 300 |
.....
.....
| 3 | 11 | 500 |
| 3 | 12 | 600 |
, поэтому в основном она просто сопоставляет идентификаторы с DivisionId и суммируйте отдельные месяцы по этим идентификаторам и объедините новую коллекцию для возврата данных. Мне не разрешается помещать DivisionId в исходную таблицу из-за того, что идентификаторы могут быть назначены для различных дивидендов в будущем, или было бы намного проще просто использовать агрегатные методы.
В настоящее время один из способов сделать это - использовать Javascript, чтобы получить данные для идентификаторов отдельно в соответствии с отображением, затем выполнить расчет и набрать sh до Монго, чтобы сохранить его как новый. коллекции, поэтому, когда пользовательский интерфейс запрашивает данные в будущем, он просто читает запрос, сохраняя дорогостоящий расчет. Но было бы замечательно, если бы я мог решить эту проблему, просто используя некоторый продвинутый синтаксис mongodb. Пожалуйста, дайте мне знать, если у вас есть какие-то хитрости, которые я мог бы использовать. Спасибо.