2016-07-31 62 views
0

我在寫數據庫服務(mongodb,django)的REST API。我的問題是如何通過API處理讀取操作?一個簡單的sol'n是使用skip查詢數據庫並在每個api調用上限制參數,所以我可以查詢數據庫並返回結果。但是,在每個API調用(分頁)上進行查詢不會很低效嗎?或者我應該查詢一次,並將cursor_id存儲在後端的第一次調用中,並且用於爲隨後的api調用獲取數據?將數據庫讀取操作公開爲webservice

謝謝。

回答

1

請使用您的簡單解決方案:只需向db查詢相應的頁碼。使用提供skip()limit()方法,或者如果你很在意效率,this thread there is a work around avoiding skip() function

總體而言,我不建議在內存中加載整個數據庫收集/表(也蒙戈但是任何分貝)。
這可以與一個小數據集一起工作,但是,如果您的集合包含大約200k個文檔,該怎麼辦?你打算讓他們在一個變量?你會浪費CPU內存重複你的分貝。
除此之外,你會發現不一致數據之間的數據庫加載和你有什麼內存。
最後,您的API會搜索頁碼2000多少次?通常你會尋找第一個結果頁面。