V MongoDB kurzorových metodách (tj. při použití find()
) jako limit
, sort
, skip
lze aplikovat v libovolném pořadí => na pořadí nezáleží. find()
vrátí kurzor, na který byly provedeny úpravy. Řazení se provádí vždy před limitem, přeskočení se provádí také před limitem. Takže jinými slovy pořadí je:seřadit -> přeskočit -> omezit .
Agregační framework nevrací DB kurzor. Místo toho vrátí dokument s výsledky agregace. Funguje tak, že vytváří mezivýsledky v každém kroku potrubí, a proto na pořadí operací opravdu záleží.
Myslím, že MongoDB nepodporuje pořadí metod modifikátoru kurzoru kvůli způsobu, jakým je interně implementován.
Na výsledku agregačního rámce nemůžete stránkovat, protože existuje jediný dokument pouze s výsledky. Stále můžete stránkovat na běžném dotazu pomocí přeskočení a omezení, ale lepším postupem by bylo použít rozsahový dotaz kvůli jeho efektivitě použití indexu.
AKTUALIZACE:
Od verze 2.6 agregační rámec Mongo vrací kurzor namísto jednoho dokumentu. Porovnat:v2.4 a v2.6 .