sql >> Database teknologi >  >> NoSQL >> MongoDB

Aggregerede rammer kan ikke bruge indekser

Dette er et sent svar, men siden $group i Mongo fra version 4.0 stadig ikke vil gøre brug af indekser, kan det være nyttigt for andre.

For at fremskynde din aggregering betydeligt, udfør en $sort før $group .

Så din forespørgsel ville blive:

db.ads_view.aggregate({$sort:{"campaign":1}},{$group: {_id : "$campaign", "action" : {$sum: 1} }});

Dette forudsætter et indeks på campaign , som skulle være oprettet i henhold til dit spørgsmål. I Mongo 4.0 skal du oprette indekset med db.ads_view.createIndex({campaign:1}) .

Jeg testede dette på en samling indeholdende 5,5+ mio. Dokumenter. Uden $sort , ville sammenlægningen ikke være færdig, selv efter flere timer; med $sort forud for $group , aggregering tager et par sekunder.



  1. MongoDB:locale::facet::_S_create_c_locale navn er ikke gyldigt

  2. Hvordan fjerner jeg nøgler?

  3. Redis Client List formål og beskrivelse

  4. Afinstaller Redis på Mac OSX. Ældre version kører efter installation af opdatering