我正在尝试将数据库中元素的唯一数字ID与long列表进行比较。
我的GQL查询应该返回那些具有此id的元素,我将其作为long数组的一部分传递。
我尝试过使用表单声明:
"SELECT * FROM Table WHERE id IN :1", list_of_stored_ids
我也尝试过使用这个问题:GQL query with numeric id in datastore viewer,但我仍然找不到与列表进行比较的方法。
有这样的方式吗?如果没有,我该怎么办?
答案 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)