Mongo Distinct Aggegation

Estoy tratando de usar el marco de agregación para realizar recuentos de grupos en mongo, pero los resultados no son exactamente los esperados.

Considera la colección de abajo

 $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));

Utilizo la consulta a continuación, intente contar el número de entradas distintas (user_id) para cada día de la 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),
            )
        ));

Entonces, para la colección anterior, los resultados deben ser

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

pero no agrupa los totales de todos los ID_usuarios DISTINCT en un día, y en cambio para cada día me da un total para cada ID_usuario existente.

Resultados (no completos)

     [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
            )
... ... ...

¿Puede alguien ayudarme a filtrar los totales diarios para que solo incluya totales distintos por día?

He mirado el$ relajarse pero realmente no podía entenderlo. ``

Respuestas a la pregunta(1)

Su respuesta a la pregunta