У меня есть записи в коллекции следующего формата.агрегирование mongodb - комбинация запроса разворота/группы/проекта
//One parent record
{
"_id" : "someDocID",
"title" : "some title",
"analytics" : [
{
"_id" : "analyticsID1",
"timeSpent" : [
{
"time" : 14,
"pageNo" : 1
},
{
"time" : 4,
"pageNo" : 2
},
{
"time" : 3,
"pageNo" : 1
},
{
"time" : 1,
"pageNo" : 2
}
]
},
{
"_id" : "analyticsID2",
"timeSpent" : [
{
"time" : 12,
"pageNo" : 10
},
{
"time" : 15,
"pageNo" : 11
},
{
"time" : 26,
"pageNo" : 12
},
{
"time" : 13,
"pageNo" : 11
},
{
"time" : 17,
"pageNo" : 10
},
{
"time" : 30,
"pageNo" : 11
}
]
}
]
}
Поле "pageNo" содержит повторяющиеся значения. Мне нужно сгруппировать поле pageNo с добавлением их соответствующего «времени».
Это мой требуемый выход. (После того, как «$ разматывает» операция по аналитике)
//Two records after "$unwind" on analytics
{
"_id" : "someDocID",
"title" : "some title",
"analytics" : {
"_id" : "analyticsID1",
"timeSpent" : [
{
"time" : 17, //14+3
"pageNo" : 1
},
{
"time" : 5, //4+1
"pageNo" : 2
}
]
}
}
{
"_id" : "someDocID",
"title" : "some title",
"analytics" : {
"_id" : "analyticsID2",
"timeSpent" : [
{
"time" : 29, //12+17
"pageNo" : 10
},
{
"time" : 58, //15+13+30
"pageNo" : 11
},
{
"time" : 26,
"pageNo" : 12
}
]
}
}
Я пробовал различные комбинации совокупности, группы, расслабиться и проекта, но до сих пор не вполне может попасть и действительно признателен за любые предложения.
Что вы хотите закончить? Вы пытаетесь суммировать «время» с помощью «pageNo» или «time» на «pageNo» для каждого идентификатора аналитики? –
Я хочу суммировать «время» на странице «Нет». –
Я хочу что-то вроде этого. analyticsID1 -> {timeSpent: [{time: 10, pageNo: 1}, ..]}, analyticsID2 -> {timeSpent: [{time: 20, pageNo: 1}, ..]} –