我有一個Array
的數組,如果用戶的Facebook好友列表如下:過濾基於數據庫記錄
[
{ 'name' => 'John Mallock', 'id' => '123123' },
{ 'name' => 'Susan Freely', 'id' => '123123123' },
...
]
我想過濾此列表中存在的users
表在我的Rails應用程序條目。目前,我正在做這個如下:
graph = Koala::Facebook::API.new 'access_token'
friends = graph.get_connections 'me', 'friends' # Returns the structure above
friends.select! { |f| User.exists? :facebook_id => f['id'] }
這導致SELECT
查詢列表中的每一位朋友,這是明顯的低效。
是否有一種更有效的方法來過濾基於數據庫記錄的列表?
建立一個所有ID的數組,並一次檢查它們。然後,您將擁有一組用戶以及現有ID的數組。從這一點,你只是過濾。 (作爲評論發佈,因爲我不知道Ruby或FB API,所以我希望我沒有忽略任何東西。) – Corbin 2012-03-02 19:51:29