Korzystanie z limit()
informujesz serwer że nie pobierzesz więcej niż k dokumenty. Dopuszczenie pewnych optymalizacji w celu zmniejszenia zużycia przepustowości i przyspieszenia sortowania. Wreszcie, używając klauzuli limit, serwer będzie mógł lepiej wykorzystać maksymalnie 32 MB dostępne podczas sortowania w pamięci RAM (np. gdy nie można uzyskać porządku sortowania z indeksu).
Teraz długa historia:find()
zwraca kursor. Domyślnie kursor przesyła wyniki do klienta partiami. Z dokumentacji
,:
Korzystanie z limit()
kursor nie będzie musiał pobierać więcej dokumentów niż to konieczne. W ten sposób zmniejsza się zużycie przepustowości i opóźnienia.
Zauważ, że biorąc pod uwagę Twój przypadek użycia, prawdopodobnie użyjesz sort()
operacja, jak również. Z tej samej dokumentacji co powyżej:
Oraz stronę dokumentacji sort() wyjaśnia dalej:
To ograniczenie 32 MB nie jest specyficzne dla sortowania za pomocą limit()
klauzula. Każdy rodzaj, którego kolejność nie może być uzyskana z indeksu, będzie podlegać tym samym ograniczeniom. Jednak z zwykłą posortuj serwer, aby pomieścić wszystkie dokumenty w jego pamięci, aby je posortować. Z ograniczonym sortować, musi tylko przechowywać k dokumenty w pamięci w tym samym czasie.