MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongo Distinct Aggregation

Wenn ich die Frage richtig verstehe, wollen Sie darauf hinaus

 totals of all DISTINCT users_id under a day

Oder wie ich es verstehe:Anzahl der eindeutigen Benutzer-IDs pro Tag.

Dazu könnten Sie die Gruppe, die Sie bereits haben, nehmen und die Anzahl herausschneiden, sodass Sie nur eine eindeutige _id.user_id haben und _id.day Wert:

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

Leiten Sie das dann an eine andere $group weiter -Anweisung, die die Anzahl der Dokumente pro Tag zählt, da es für jede eindeutige user_id genau eines gibt /day Kombination:

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