Aggregação Distinta de Mongo

Estou tentando usar a estrutura de agregação para realizar contagens de grupos no mongo, mas os resultados não são exatamente como o esperado.

Considere a coleção abaixo

 $people->insert(array("user_id" => "1", "day" => "Monday", 'age' => 18));
 $people->insert(array("user_id" => "3", "day" => "Monday", 'age' => 24));
 $people->insert(array("user_id" => "1", "day" => "Monday", 'age' => 18));
 $people->insert(array("user_id" => "1", "day" => "Monday", 'age' => 18));
 $people->insert(array("user_id" => "2", "day" => "Monday", 'age' => 25));
 $people->insert(array("user_id" => "4", "day" => "Monday", 'age' => 33));
 $people->insert(array("user_id" => "1", "day" => "Tuesday", 'age' => 18));
 $people->insert(array("user_id" => "2", "day" => "Tuesday", 'age' => 25));
 $people->insert(array("user_id" => "1", "day" => "Wednesday", 'age' => 18));
 $people->insert(array("user_id" => "2", "day" => "Thursday", 'age' => 25));
 $people->insert(array("user_id" => "1", "day" => "Friday", 'age' => 18));

Eu uso a consulta abaixo, tente contar o número de entradas distintas (user_id) para cada dia da semana.

$query = array(
        array(
            '$project' => array(
                'user_id' =>1,
                'day' =>1,
            ),
        ),
        array(
            '$group' => array(
                '_id'  => array(
                    'user_id' => '$user_id',
                 'day' => '$day'),
                'count' => array('$sum' => 1),
            )
        ));

Portanto, para a coleta acima, os resultados devem ser

Monday = 3     Tues = 2,     Wed = 1,     Thur = 1 and    Friday = 1

mas ele não agrupa os totais de todos os DISTINCT users_id em um dia e, em vez disso, a cada dia, fornece um total para cada user_id existente.`

Resultados (não completo)

     [result] => Array
    (
        [0] => Array
            (
                [_id] => Array
                    (
                        [user_id] => 1
                        [day] => Friday
                    )

                [count] => 1
            )

        [1] => Array
            (
                [_id] => Array
                    (
                        [user_id] => 1
                        [day] => Wednesday
                    )

                [count] => 1
            )

        [2] => Array
            (
                [_id] => Array
                    (
                        [user_id] => 2
                        [day] => Tuesday
                    )

                [count] => 1
            )
... ... ...

Alguém pode me ajudar a filtrar os totais diários para incluir apenas totais distintos por dia

Eu olhei para o$ desenrolar mas não consegui entender direito. `

questionAnswers(1)

yourAnswerToTheQuestion