2011-08-07 3 views
0

페이스 북의 ID가있는 계정 엔티티가 있습니다.Google App Engine의 큰 IN 절 쿼리

때때로 클라이언트는 모든 facebook id (클라이언트 facebook friends)를 서버에 보낼 수 있습니다.

고객이 제공 한 페이스 북의 ID로 모든 계정을 선택하고 싶습니다.

사람들이 1000 명이 넘는 친구를 고려할 때 각 페이스 북의 루핑과 전화는 다소 느립니다. 또한 GAE는 IN 절이 포함 된 30 개의 쿼리로 제한됩니다.

누구와 비슷한 상황이 있습니까? 어떻게 처리 했습니까?

감사합니다.

답변

1

모델을 사용할 수 있도록 페이스 북 ID를 키로 사용하는 모델을 설정할 수 있습니다. get_by_key_name (key_names = fb_ids) : fb_ids에있는 키가있는 모든 모델을 한 번에 가져옵니다.

model = FBModel(key_name=fb_id) 
+0

이 사용자가 미리 서버에 대한 모든 자신의 페이스 북 친구들을 업로드하거나 자신의 facebook_id 내 계정 개체를 업데이트하는 의미 하는가 :

class FBModel(db.Model): account = db.ReferenceProperty(reference_class=Account) 

모델을 만들 때? – dnkoutso

+0

페이스 북의 API 또는 데이터베이스에서 친구 데이터를 가져 오려고하십니까? 분명히 친구의 친구들은 자신의 페이스 북 ID와 정보를 가질 수있는 계정을 가지고 있어야합니다. –

+0

각 클라이언트는 페이스 북 친구를 받아 자신의 기기 (모바일 앱)에 저장합니다. 그런 다음 GAE 요청을 실행하면이 전체 데이터베이스를 가져 와서 JSONArray로 직렬화하여 전송합니다. 그러면 서버가이 데이터를 가져 와서 클라이언트가 제공 한 설정 내의 모든 계정을 찾으려고 시도합니다. 귀하의 솔루션이 그렇게 할 것이라고 생각합니다. 비슷한 동영상을 보았습니다. 더 많은 정보가 있으면 의견을 말하십시오, 관심이 있습니다 :) 그렇지 않으면이를 시도하고 응답을 표시합니다. – dnkoutso