在Python App Engine中按实体键名过滤

时间:2010-03-30 10:57:29

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

在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__ >=", ?????)

2 个答案:

答案 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)