1

Я использую модель ndb в качестве моей базы данных. то, что я пытаюсь сделать, - это фильтр результата на основе списка идентификаторов. у меня есть моя модель, как:фильтр по id в модели ndb

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 список идентификаторов. Помогите мне решить эту проблему.

ответ

1

Я хотел бы предложить вам создать ключи от каждого идентификатора, а затем получить их все один раз:

photo_keys = [ndb.Key(Photo, id) for id in photoid_list] 
photos = ndb.get_multi(photo_keys) 

Преимущество в том, что получение выполняется быстрее, чем запрос. Кроме того, ndb будет memcache сущностей по ключу и сделать последующее получение еще быстрее.

+0

Спасибо за ответ :) – abhishek

Смежные вопросы