在Google App Engine上使用Python查询数据存储,可以使用GQL或Entity.all()然后对其进行过滤。例如,这些是等价的
gql = "SELECT * FROM User WHERE age >= 18"
db.GqlQuery(gql)
和
query = User.all()
query.filter("age >=", 18)
现在,也可以按键名查询事物。我知道在GQL中你可以这样做
gql = "SELECT * FROM User WHERE __key__ >= Key('User', 'abc')"
db.GqlQuery(gql)
但是你现在如何使用过滤器来做同样的事情呢?
query = User.all()
query.filter("__key__ >=", ?????)
答案 0 :(得分:16)
from google.appengine.api.datastore import Key
query.filter("__key__ >=", Key.from_path('User', 'abc'))
答案 1 :(得分:3)
对我来说,类似的方式有效,而“from_path”功能在我的情况下不起作用,这个做了:
from google.appengine.api.datastore import Key
key = Key(your_string_with_key)
query.filter("__key__ = ", key)