Използване на limit()
информирате сървъра че няма да извлечете повече от k документи. Позволява някои оптимизации за намаляване на потреблението на честотна лента и за ускоряване на сортирането. И накрая, използвайки клауза за ограничение, сървърът ще може да използва по-добре максимума от 32 MB, наличен при сортиране в RAM (т.е.:когато редът на сортиране не може да бъде получен от индекс).
Сега дългата история:find()
връща курсор. По подразбиране курсорът ще прехвърли резултатите на клиента на партиди. От документацията
,:
Използване на limit()
курсорът няма да има нужда да извлича повече документи от необходимото. По този начин се намалява консумацията на честотна лента и забавянето.
Моля, обърнете внимание, че при вашия случай на употреба вероятно ще използвате sort()
операция също. От същата документация като по-горе:
И страницата с документация за sort() обяснява допълнително:
Това ограничение от 32 MB не е специфично за сортиране чрез limit()
клауза. Всеки сорт, чийто ред не може да бъде получен от индекс, ще страда от същото ограничение. Въпреки това, с обикновен сортиране сървърът трябва да съдържа всички документи в паметта си, за да ги сортира. С ограничено сортиране, трябва да съхранява само k документи в паметта едновременно.