Тъй като това е заявка за текстово търсене, за която говорим, най-оптималната форма е тази:
db.collection.aggregate([
{
"$match": {
"$text": { "$search": "cake tea" }
}
},
{ "$sort": { "score": { "$meta": "textScore" } } },
{ "$limit": skip + limit },
{ "$skip": skip }
])
Обосновката за резерва на паметта от най-горните резултати за „сортиране“ ще работи само в собствените си „граници“ и това няма да е оптимално за нищо извън няколко разумни „страници“ с данни.
Освен това, което е разумно за консумация на памет, допълнителният етап вероятно ще има по-скоро отрицателен ефект, отколкото положителен.
Това наистина са практическите ограничения на възможностите за текстово търсене, достъпни за MongoDB в текущата форма. Но за всичко по-подробно и изискващо по-голяма производителност, точно както е в случая с много решения за „пълен текст“ на SQL, е по-добре да използвате външно „целесъобразно“ решение за търсене на текст.