Du bør køre explain
mod din forespørgsel, vil det hjælpe dig med at finde ud af, hvad der foregår.
Det er sandsynligt, at Mongo ikke bruger et indeks til både filtrering og sortering. Når du bruger en $or
, kan den bruge flere indekser til at matche mulighederne. Men når du tilføjer en sort
det kan gøre, at den ikke bruger indekser, der er tilgængelige til filtrering.
Når du vil sortere på en forespørgsel, skal du sørge for, at det sorterede felt er i det indeks, du vil ramme (sidst, ellers kan det ikke bruge det til at sortere).
Du kan muligvis også fremskynde det ved at sende et indekstip. Jeg ved ikke, hvor mange dokumenter din forespørgsel matcher, men hvis det er et lille tal, og du sørger for, at startbetingelserne rammer et indeks, sorteres på _id
kan gøres hurtigt.