我有一個Node.js REST API,通過node-mysql
直接與MySQL數據庫一起工作。如何在REST API端點上處理結果篩選?
我正在尋找一種方法來以最具性能的方式過濾端點上的數據庫結果。
目前,我有一個端點/api/v2/matches
,其中我的API代碼查詢數據庫並將結果輸出爲JSON響應。
我打算在此端點上使用過濾器。例如/api/v2/matches?filter[team]=TeamId
在我的代碼中過濾這些數據庫結果的最佳方式/最具性能的方式是什麼?
我應該:
查詢的一切數據庫,並使用
Array.prototype.filter()
或類似我的結果陣列將數據正確地過濾。以編程方式組裝我的查詢字符串,具體取決於在對象
req.query.filters
上傳遞的內容並查詢數據庫。
請記住,我目前對這個端點的查詢(返回所有結果的那個)有幾個INNER JOINS
正在進行。我在這個查詢中也使用了LIMIT 50
。