Im пытается получить сгруппированный/агрегированный результат в Mongodb.MongoDb aggregate by embedded document
Это как моя коллекция выглядит следующим образом:
Array(
[_id] => 529474f4adcc2bb25b662f2f
[lists] => Array
(
[0] => Array
(
[_id] => 529466c8adcc2b5a5b662f13
[name] => List 4
[status] => active
[changed_at] => 1385460980
)
[1] => Array
(
[_id] => 529466c8adcc2b5a5b662f12
[name] => List 3
[status] => inactive
[changed_at] => 1385460980
)
)
[name] => Name 20)
Я хочу, чтобы получить результат, который будет рассчитывать неактивных пользователей, сгруппированных по месяцам на основе changed_at
.
я могу получить результаты, как таким образом:
$ops = array(
array(
'$match' => array(
'lists.status' => 'inactive'
)
)
);
$unsubYearStats = $c->aggregate($ops);
Вопрос в том, как я могу использовать $group
к группе совпавшего элемента? (В этом случае поле Листа 3 "changed_at")
Что-то вроде:
'$group' => array(
"_id" => array("month" => array('$month' => '-->$matched_subdocument.changed_at<--')),
"total" => array('$sum' => 1),
),
Спасибо за любые советы.
Можете ли вы использовать синтаксис JSON для объектов MongoDB в своих примерах или добавить тег для языка программирования, который вы используете? – Philipp