(在 MongoDB 中實現分頁)
由於記憶體消耗,不建議對大型資料集使用基於跳過的分頁。另一種分頁方法是按 _id 欄位使用自然順序。然而,檢索最後一個文件的 _id 對初學者來說是一個挑戰。
(正向分頁)**
正向分頁涉及依序迭代頁面,儲存_id
對於_id 這樣的自然順序,過程很簡單:
- 找第一頁:db.users.find().limit( pageSize)。
- 取得最後一個文件的_id:last_id = ....
- 找出下一頁:users = db.users.find({'_id' > last_id} )。 limit(10);.
(非自然順序)**
對於非自然順序,例如排名,過程變得更加複雜:
-
在第一頁,儲存檢索到的文件的_ids和lastSeen排名:
- var sawIds = [];, var lastSeen = null;
- 在遍歷遊標時儲存_id 並更新lastSeen。
-
在後續頁面上,排除已查看的_id 並檢索排名小於或等於lastSeen 的文件:
- db.junk.find ( {_id: { $nin: sawIds }, 排名: $lte: lastSeen } ).sort({ "rank": -1 }).limit(2 );
(注意事項)**
- 維護已看到的_id 清單以排除後續頁面上的結果。
- 儲存lastSeen值並在排名變更時丟棄seen_ids(對於非自然順序)。
以上是如何在 MongoDB 中達到最佳分頁?的詳細內容。更多資訊請關注PHP中文網其他相關文章!