在Google应用引擎中查询问题

时间:2009-10-23 13:38:56

标签: google-app-engine google-cloud-datastore gqlquery

我对sql非常陌生,而且比谷歌应用引擎中使用的GQL更多。我已设法将数据推送到Google服务器,但我无法找到从我加载到数据库的实体进行查询的方法。

这是问题所在,我想只查询用户ID标记的用户名称和号码,而不是下面给出的其他列,

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

这是我的Models.py文件,其中我有MyContacts Entity定义,

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

我将用户ID作为UI的输入,但我无法找到使用查询调出数据的方法。如果任何人可以帮我在GQL中输入查询,那对我来说将是一个很大的帮助。 我尝试了SELECT * FROM MyContacts WHERE __key__ = KEY('user_id',654351)之类的各种各样但我一无所获。

请帮帮我。

1 个答案:

答案 0 :(得分:1)

由于User_id是IntegerProperty,您需要像这样查询:

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

或与查询等效:

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

请注意,如果'User_id'取自Users API User对象,则不应将其转换为int - 它不能保证适合64位,因此您应该将其存储为字符串或作为UserProperty。