2009-10-23 6 views
0

저는 Google App Engine에서 사용되는 SQL과 GQL에 익숙하지 않았습니다. 데이터를 Google 서버로 전송할 수 있었지만 데이터 저장소에로드 한 항목에서 쿼리 할 수있는 방법을 찾을 수 없습니다. 여기 Google 앱 엔진의 쿼리 문제

는 아래처럼, 내가이 내 Models.py 파일

Name Number  User_id Country  
Rob 0065114146 654351 singapore 
Mark 0065132411 654351 singapore 
Tina 0065221916 846611 singapore 
Nick 0065214126 846611 singapore 

입니다, 다른 컬럼에서 분리 사용자 ID로 표시 사용자의 연락처의 이름과 번호를 조회 할 문제입니다있는 I 나는 UI에서 입력으로 사용자 ID를 복용하고 있지만 쿼리를 사용하여 데이터를 가져올 수있는 방법을 알아낼 수 없습니다입니다

Class MyContacts(db.Model): 
    Name = db.StringProperty(required=True) 
    Number = db.PhoneNumberProperty(required=True) 
    User_id = db.IntegerProperty(required=True) 
    Country = db.StringProperty() 

, 엔티티 정의 내 MyContacts 있습니다. 제발 내가 GQL에서 쿼리를 도울 수 있다면 제게 큰 도움이 될 것입니다. SELECT * FROM MyContacts WHERE __key__ = KEY('user_id',654351)과 같은 모든 종류를 시도했지만 아무 것도 얻지 못했습니다.

도와주세요.

db.GqlQuery("SELECT * FROM MyContacts WHERE User_id = :1", some_int) 

또는 동등를 쿼리로 : USER_ID는 IntegerProperty 때문에

+1

모델 정의가 도움이 될 것입니다. –

+0

예, MyContacts에 유용한 모델을 실제로보아야합니다. 이름 = db.StringProperty (= TRUE 필수) 번호 = db.PhoneNumberProperty (필수 = 참) USER_ID : –

+0

이, 클래스 MyContacts (db.Model가) 내 MyContacts 법인이있는 아래 내 Models.py 파일입니다 = db.IntegerProperty (필수 = True) 국가 = db.StringProperty() – Arun

답변

1

, 당신은 다음과 같이 쿼리해야

MyContacts.all().filter('User_id =', some_int) 

참고 그 'USER_ID'는 사용자 API 사용자에서 가져온 경우 객체를 int로 형변환하면 안됩니다. 64 비트로는 적합하지 않으므로 문자열이나 UserProperty로 저장해야합니다.

+0

이름과 그의 이름 만 표시하려면 모든 열 대신 "이름"및 "번호"두 열을 검색하는 방법이 있습니까 숫자를 UI에 입력하면 더 빠른 응답을 얻을 수 있습니다. – Arun

+0

엔티티는 항상 전체적으로 반환됩니다. 당신은 별도의 테이블로 비정규화할 수 있지만이 모델만큼 작은 것은 필요 없습니다. –

관련 문제