Хорошо, я некоторое время искал, но не смог найти ответ на этот вопрос, и я в отчаянии: P
У меня есть несколько документов с этим синтаксисом
{
"period": ISODate("2018-05-29T22:00:00.000+0000"),
"totalHits": 13982
"hits": [
{
// some fields...
users: [
{
// some fields...
userId: 1,
products: [
{ productId: 1, price: 30 },
{ productId: 2, price: 30 },
{ productId: 3, price: 30 },
{ productId: 4, price: 30 },
]
},
]
}
]
}
И я хочу получить подсчет того, сколько продуктов (независимо от того, у какого пользователя у них есть) у нас за период, пример вывода будет таким:
[
{
"period": ISODate("2018-05-27T22:00:00.000+0000"),
"count": 432
},
{
"period": ISODate("2018-05-28T22:00:00.000+0000"),
"count": 442
},
{
"period": ISODate("2018-05-29T22:00:00.000+0000"),
"count": 519
}
]
Что сводит меня с ума, так это«объект внутри массива внутри массива» Я сделал много агрегаций, но я думаю, что они были проще, чем этот, поэтому я немного растерялся.
Я думаю об изменении структуры нашего документа в лучшую сторонуодин, но у нас есть ~ 6M документов, которые нам нужно преобразовать в новый, и это просто беспорядок ... но, возможно, это единственное решение.
Мы используем MongoDB 3.2, мы не можем обновитьнаши системы банкоматов (желаю, но не возможно).