【问题标题】:GQL query checking numerical id within a list of idsGQL 查询检查 id 列表中的数字 id
【发布时间】:2016-01-23 05:19:45
【问题描述】:
我正在尝试将我的数据库中元素的唯一数字 id 与 long 列表进行比较。
我的 GQL 查询应该返回那些具有我作为其 long 数组的一部分传递的 id 的元素。
我尝试过使用以下形式的语句:
"SELECT * FROM Table WHERE id IN :1", list_of_stored_ids
我也尝试过使用这个问题:GQL query with numeric id in datastore viewer,但我仍然找不到任何与列表进行比较的方法。
有没有这样的方法?如果没有,我该怎么办?
【问题讨论】:
标签:
python
google-app-engine
gql
gqlquery
【解决方案1】:
您需要建立一个 ndb 键列表,而不是数字 ID,才能使其正常工作。
例如:
ids = [5918782761467904, 5624113645223936, 5463928544952320]
keys = [ndb.Key('<Entity>', id) for id in ids]
entities = ndb.gql("SELECT * FROM <Entity> WHERE __key__ IN :1", keys).fetch()
或(非 GQL 版本)
entities = ndb.get_multi(keys)