No puede crear un índice que funcione de la manera que lo ha descrito. No hay forma de "indexar" una de las salidas de un paso de canalización cuando se ejecuta una agregación.
Hay algunos operadores de agregación con los que pueden funcionar Índices de colección de MongoDB .
Actualmente, incluyen:$match
, $sort
, $limit
y $skip
.
Como $match
es uno de ellos, el rendimiento de la consulta de agregación que ha escrito puede beneficiarse al declarar un índice compuesto en los dos campos, especialmente porque ha colocado correctamente el $match
al comienzo de la canalización:
db.theCollection.ensureIndex({user: 1, type: 1})
El $group
El paso en la canalización tomará los resultados de $match
e idealmente, ser relativamente rápido. :)