我正在使用ndb模型作为我的数据库。我想要做的是根据id列表过滤结果。 我有我的模型:
class Photo(ndb.Model):
userid = ndb.StringProperty()
source = ndb.StringProperty()
handle = ndb.StringProperty()
sourceid =ndb.StringProperty()
所以我正在尝试这样的查询:
queryset=Photo.query(Photo.key.id().IN(photoid_list))
我也尝试过:
queryset=Photo.query(Photo.id().IN(photoid_list))
其中photoid_list是id列表。 帮我解决一下。
答案 0 :(得分:1)
我建议您从每个ID创建密钥,然后立即获取所有密钥:
photo_keys = [ndb.Key(Photo, id) for id in photoid_list]
photos = ndb.get_multi(photo_keys)
优点是get比查询更快。此外,ndb将按密钥对实体进行内存缓存,并使后续内容更快。
答案 1 :(得分:0)
文档中有一些例子:
https://cloud.google.com/appengine/docs/python/ndb/queries#neq_and_in
所以看起来您的查询应该是:
queryset=Photo.query(Photo.id.IN(photoid_list))