MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Agrégation distincte Mongo

Si je comprends bien la question, ce que vous essayez d'obtenir est

 totals of all DISTINCT users_id under a day

Ou si je comprends bien :nombre d'ID utilisateur uniques par jour.

Pour cela, vous pouvez prendre le groupe que vous avez déjà et réduire le nombre afin de n'avoir qu'un seul _id.user_id et _id.day valeur :

'$group' => array(
            '_id'  => array(
                'user_id' => '$user_id',
                'day' => '$day'
            )
        )

Ensuite, dirigez-le vers un autre $group déclaration qui compte le nombre de documents par jour, puisqu'il y en a exactement un pour chaque user_id unique /day combinaison :

'$group' => array(
            '_id'  => '$_id.day',
            'count' => array('$sum' => 1)
        )