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

Indexation Mongodb pour les agrégats

Vous ne pouvez pas créer un index qui fonctionne comme vous l'avez décrit. Il n'existe aucun moyen "d'indexer" l'une des sorties d'une étape de pipeline lors de l'exécution d'une agrégation.

Il existe quelques opérateurs d'agrégation avec lesquels peut fonctionner Index de collection MongoDB .

Actuellement, ils incluent :$match , $sort , $limit , et $skip .

Comme $match est l'un d'entre eux, les performances de la requête d'agrégation que vous avez écrite peuvent bénéficier de la déclaration d'un index composé sur les deux champs, d'autant plus que vous avez correctement placé le $match au début du pipeline :

db.theCollection.ensureIndex({user: 1, type: 1})

Le $group étape dans le pipeline prendra les résultats du $match et idéalement, être relativement rapide. :)