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

Bem*_*mmu 15 python google-app-engine google-cloud-datastore

在Google App Engine上使用Python查询数据存储,可以使用GQL或Entity.all()然后对其进行过滤.所以例如这些是等价的

gql = "SELECT * FROM User WHERE age >= 18"
db.GqlQuery(gql)
Run Code Online (Sandbox Code Playgroud)

query = User.all()
query.filter("age >=", 18)
Run Code Online (Sandbox Code Playgroud)

现在,也可以按键名查询事物.我知道在GQL中你这样做

gql = "SELECT * FROM User WHERE __key__ >= Key('User', 'abc')"
db.GqlQuery(gql)
Run Code Online (Sandbox Code Playgroud)

但是你现在如何使用过滤器来做同样的事情呢?

query = User.all()
query.filter("__key__ >=", ?????)
Run Code Online (Sandbox Code Playgroud)

Bem*_*mmu 16

from google.appengine.api.datastore import Key
query.filter("__key__ >=", Key.from_path('User', 'abc'))
Run Code Online (Sandbox Code Playgroud)