Это старый вопрос, поэтому я не уверен, является ли ID
неключевым свойством. Но чтобы ответить на это:
query = Story.all()
query.filter('ID **NOT IN** =', [100,200,..,..])
... С ndb моделями вы можете определенно запрашивать элементы, которые находятся в списке. Например, см. Документы здесь для IN
и !=
. Вот как выполнить фильтрацию по запросу OP:
query = Story.filter(Story.id.IN([100,200,..,..])
Мы можем даже запросить элементы, которые находятся в списке повторяющихся ключей:
def all(user_id):
# See if my user_id is associated with any Group.
groups_belonged_to = Group.query().filter(user_id == Group.members)
print [group.to_dict() for group in belong_to]
Некоторые оговорки:
Есть документы, в которых упоминается, что для выполнения этих типов запросов Datastore выполняет несколько запросов за кулисами, что (1) может занять некоторое время, (2) займет больше времени, если вы выполняете поиск в повторяющихся свойствах, и (3) увеличит ваши расходы за счет дополнительных операций.