0

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

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

我尝试使用以下形式的语句:

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

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

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

4

1 回答 1

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)
于 2015-10-25T23:26:05.463 回答