0
我知道如何查詢集合。但是我有一個包含100,000個記錄的集合,我想每個頁面只顯示100個項目。然後,用戶可以選擇接下來的100條記錄,等等......node.js mongodb遊標循環客戶端請求
由於此請求來自用戶,因此如何在node.js上保持光標打開以便在客戶端請求它時循環接下來的100個項目?
什麼是標準做法?
謝謝!
我知道如何查詢集合。但是我有一個包含100,000個記錄的集合,我想每個頁面只顯示100個項目。然後,用戶可以選擇接下來的100條記錄,等等......node.js mongodb遊標循環客戶端請求
由於此請求來自用戶,因此如何在node.js上保持光標打開以便在客戶端請求它時循環接下來的100個項目?
什麼是標準做法?
謝謝!
你所指的標準做法就像分頁。
您不需要始終保持光標一直打開。所有你需要確定的是你從你離開的同一個地方繼續。
客戶端將保留已經顯示的記錄數並在遊標的skip()
函數內使用該數字。
例如:
record_count = 10
。record_count
。record_count
。record_count
變量現在是20請記住,你想要你的結果以某種方式進行排序,以便您的查詢將始終返回不同結果(接下來的10條記錄)。
我不是太熟悉蒙戈節點驅動程序,但在蒙戈外殼,您可以按如下執行查詢:
db.collection.find().sort({ "time": 1 }).skip(record_count).limit(10)
如果我做什麼複雜的查詢,比如說 - 關鍵字搜索。這會在每次用戶請求時執行復雜的查詢,這不是問題嗎? – user3658423
如果這是一個複雜的查詢,您只能執行一次實際查詢並將結果保存到其他集合中。然後,您將使用我所描述的相同技術來查詢包含結果的集合。 – Lix