我建立從MongoDB中調用數據的應用程序。對於這個問題的目的,假裝用戶搜索我的應用程序的某個查詢,和MongoDB擁有4000個結果吐出來匹配查詢。分頁結果MongoDB中,而不依賴於.skip()
在閱讀了一下後,我發現可以使用.skip()
方法進行分頁,but MongoDB themselves suggest against using this,因爲它需要光標遍歷所有記錄,直到您跳過的那個記錄爲止,這會變得越來越昂貴在列表中的較高位置。
我見過的依賴的結果_id
屬性是連續幾個教程,但這並不適用於這裏 - 我的數據庫有記錄的成千上萬,每個都有一個唯一的ID和適用於用戶查詢的4000條結果肯定不會是連續的。
任何人都可以想辦法做到這一點,或者是skip()
這裏唯一的選擇?
其他注意事項:
分頁將工作根據頁面上的位置。例如,第一個查詢應該向我的應用程序吐出20條記錄。當用戶滾動到頁面的底部,我可能會得到在頁面上20元的_id
並傳遞到我的查詢,發現它在4000個結果列表中,找到後續結果,並開始下一組20從那裏。這種事情是否可行?是否會比skip()
更少佔用CPU?