阅读:http ://code.google.com/appengine/docs/python/datastore/gqlreference.html
我想使用:
:= 输入
但我不确定如何使它工作。让我们假设以下
class User(db.Model):
name = db.StringProperty()
class UniqueListOfSavedItems(db.Model):
str = db.StringPropery()
datesaved = db.DateTimeProperty()
class UserListOfSavedItems(db.Model):
name = db.ReferenceProperty(User, collection='user')
str = db.ReferenceProperty(UniqueListOfSavedItems, collection='itemlist')
如何进行查询以获取用户已保存项目的列表?显然我可以这样做:
q = db.Gql("SELECT * FROM UserListOfSavedItems WHERE name :=", user[0].name)
但这给了我一个钥匙列表。我现在想获取该列表并将其放入查询中以从 UniqueListOfSavedItems 中获取 str 字段。我以为我可以这样做:
q2 = db.Gql("SELECT * FROM UniqueListOfSavedItems WHERE := str in q")
但有些不对劲……有什么想法吗?是吗(我在做我的日常工作,所以现在无法测试):
q2 = db.Gql("SELECT * FROM UniqueListOfSavedItems __key__ := str in q)
旁注:搜索一个非常困难的问题,因为我真正关心的是“IN”运算符。