scanAndOrder: true
i forklaringen angiver output, at forespørgslen skal hente dokumenterne og derefter sortere dem i hukommelsen, før outputtet returneres. Dette er en dyr operation og vil have en indvirkning på effektiviteten af din forespørgsel.
Eksistensen af scanAndOrder: true
samt forskellen i nscanned
en n
i forklaringen angiver output, at forespørgslen ikke bruger et optimalt indeks. I dette tilfælde ser det ud til, at det er nødvendigt at lave en indsamlingsscanning. Du kan muligvis afhjælpe dette problem ved at inkludere indeksnøglerne i din sort
kriterier. Fra min test:
db.posts.find({hashtags: /^noticias/ }).limit(15).sort({hashtags:1, rank : -1}).explain()
Kræver ikke scanning og bestilling, og returnerer n
og nscanned
af antallet af poster, du leder efter. Dette ville også betyde sortering på hashtags
nøgle, som måske eller måske ikke er nyttig for dig, men som bør øge ydelsen af forespørgslen.