Я попытался в течение нескольких дней, чтобы создать рабочий агрегат, но я просто не получаю его.Как мне использовать агрегацию Mongo, чтобы получить общее количество просмотров страниц за каждую группу дней.
У меня есть коллекция, которая похожа на следующее.
_id: ObjectId("52672ca368a56f481d000045"),
totalviews: 5,
views: [
{date: ISODate("2013-10-23T01:55:47Z") },
{date: ISODate("2013-10-23T01:55:50Z") },
{date: ISODate("2013-10-23T23:31:08Z")},
{etc.}
]
То, что я пытаюсь сделать, это получить общее число просмотров за каждый день, так что я могу отобразить список дат (от «мнения») и общего для этих дней.
Может ли кто-нибудь показать мне, как это можно сделать?
Спасибо
Edit - ниже код работает правильно Вот PHP код для решения при условии, если это помогает кто-то еще:
$ops = array(
array('$unwind' => '$views'),
array('$project' => array('date'=>array(
'day'=>array('$dayOfMonth'=>'$views.date'),
'month'=>array('$month'=>'$views.date'),
'year'=>array('$year'=>'$views.date'))
)),
array('$group'=>array('_id'=>'$date','views'=>array('$sum'=>1)))
);
$data = $collection->aggregate($ops);
Просьба представить пример ввода и ожидаемых результатов. Прямо сейчас ваш вопрос непонятен. Вы хотите просматривать по дням за каждый документ или просмотры в день на коллекцию? Вы также должны показать, что вы пробовали до сих пор. – zero323