MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Indeksowanie Mongodb dla agregatów

Nie możesz utworzyć indeksu, który działa tak, jak go opisałeś. Nie ma sposobu na „indeksowanie” jednego z wyjść kroku potoku podczas uruchamiania agregacji.

Istnieje kilka operatorów agregacji, z którymi może współpracować Indeksy kolekcji MongoDB .

Obecnie obejmują one:$match , $sort , $limit i $skip .

Jako $match jest jednym z nich, wydajność zapytania agregującego, które napisałeś, może zyskać dzięki zadeklarowaniu indeksu złożonego w dwóch polach, zwłaszcza że poprawnie umieściłeś $match na początku potoku:

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

$group krok w potoku pobierze wyniki z $match a najlepiej być stosunkowo szybkim. :)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Agregat Mongoose zwraca pusty wynik

  2. Znajdź max element wewnątrz tablicy

  3. Jak zapisać wynik zapytania (pojedynczy dokument) w zmiennej?

  4. mongoid .limit nie działa w mongoid 3.1.x

  5. Jak używać zmiennych w funkcji mapy MongoDB Map-reduce