GQL查询检查id列表中的数字ID

时间:2015-10-23 15:33:43

标签: python google-app-engine gql gqlquery

我正在尝试将数据库中元素的唯一数字ID与long列表进行比较。

我的GQL查询应该返回那些具有此id的元素,我将其作为long数组的一部分传递。

我尝试过使用表单声明:

"SELECT * FROM Table WHERE id IN :1", list_of_stored_ids

我也尝试过使用这个问题:GQL query with numeric id in datastore viewer,但我仍然找不到与列表进行比较的方法。

有这样的方式吗?如果没有,我该怎么办?

1 个答案:

答案 0 :(得分:0)

您需要建立一个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)