首頁  >  文章  >  web前端  >  如何在 MongoDB 中達到最佳分頁?

如何在 MongoDB 中達到最佳分頁?

Patricia Arquette
Patricia Arquette原創
2024-10-24 06:54:02762瀏覽

How to Implement Optimal Pagination in MongoDB?

(在 MongoDB 中實現分頁)

由於記憶體消耗,不建議對大型資料集使用基於跳過的分頁。另一種分頁方法是按 _id 欄位使用自然順序。然而,檢索最後一個文件的 _id 對初學者來說是一個挑戰。

(正向分頁)**

正向分頁涉及依序迭代頁面,儲存_id

對於_id 這樣的自然順序,過程很簡單:

  1. 找第一頁:db.users.find().limit( pageSize)。
  2. 取得最後一個文件的_id:last_id = ....
  3. 找出下一頁:users = db.users.find({'_id' > last_id} )。 limit(10);.

(非自然順序)**

對於非自然順序,例如排名,過程變得更加複雜:

  1. 在第一頁,儲存檢索到的文件的_ids和lastSeen排名:

    • var sawIds = [];, var lastSeen = null;
    • 在遍歷遊標時儲存_id 並更新lastSeen。
  2. 在後續頁面上,排除已查看的_id 並檢索排名小於或等於lastSeen 的文件:

    • db.junk.find ( {_id: { $nin: sawIds }, 排名: $lte: lastSeen } ).sort({ "rank": -1 }).limit(2 );

(注意事項)**

  • 維護已看到的_id 清單以排除後續頁面上的結果。
  • 儲存lastSeen值並在排名變更時丟棄seen_ids(對於非自然順序)。

以上是如何在 MongoDB 中達到最佳分頁?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn