У меня небольшая проблема с агрегацией. У меня есть большая коллекция плоских документов со следующей схемой:
{
_id:ObjectId("5dc027d38da295b969eca568"),
emp_no:10001,
salary:60117,
from_date:"1986-06-26",
to_date:"1987-06-26"
}
Все дело в годовой зарплате сотрудника. Данные экспортируются из реляционной базы данных, поэтому существует несколько документов с одинаковым значением "emp_no" , но остальные их атрибуты различаются. Мне нужно агрегировать их по значениям атрибута "emp_no", поэтому в результате у меня будет что-то вроде этого:
//one document
{
_id:ObjectId("5dc027d38da295b969eca568"),
emp_no:10001,
salaries: [
{
salary:60117,
from_date:"1986-06-26",
to_date:"1987-06-26"
},
{
salary:62102,
from_date:"1987-06-26",
to_date:"1988-06-25"
},
...
]
}
//another document
{
_id:ObjectId("5dc027d38da295b969eca579"),
emp_no:10002,
salaries: [
{
salary:65828,
from_date:"1996-08-03",
to_date:"1997-08-03"
},
...
]
}
//and so on
И последнее, но не менее важное: почти 2,9 млн документов агрегируются по "emp_no " вручную было бы небольшой проблемой.
Есть ли способ объединить их, используя только монго запросы? Как мне делать такие вещи? Заранее благодарю за любую помощь