MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Indexação do Mongodb para agregados


Você não pode criar um índice que funcione da maneira que você o descreveu. Não há como "indexar" uma das saídas de uma etapa de pipeline ao executar uma agregação.

Existem alguns operadores de agregação que podem trabalhar Índices de coleção do MongoDB .

Atualmente, eles incluem:$match , $sort , $limit e $skip .

Como $match é um deles, o desempenho da consulta de agregação que você escreveu pode se beneficiar declarando um índice composto nos dois campos, especialmente porque você colocou corretamente o $match no início do pipeline:
db.theCollection.ensureIndex({user: 1, type: 1})

O $group etapa no pipeline levará os resultados do $match e, idealmente, seja relativamente rápido. :)