Запрашивать сущности с отсутствующими свойствами в Datastore движка приложений?

У меня есть модель, которая выглядит так:

class Example (db.Model) :
 row_num = db.IntegerProperty(required=True)
 updated = db.IntegerProperty()
 ...
 ...

Теперь, когда я сохраняю значения, я не могу каждый раз заполнять значение обновленного свойства, что означает, что в некоторых объектах оно может не существовать.

Я хочу создать запрос к хранилищу данных, чтобы получить все объекты типа Example, для которых не установлено обновленное свойство.

Как мне это сделать?

p.s. Я знаю, что могу установить значение по умолчанию, а затем запросить его. Но проблема в том, что у меня более 3 миллионов объектов, и обновленные будут отмечены только для 1% из них, поэтому я не хочу тратить так много места в хранилище данных, устанавливая для остальных значение 0.


person demos    schedule 26.07.2010    source источник


Ответы (1)


В GQL объекты, не имеющие значения для свойства, не могут быть возвращены запросами по этому свойству, поэтому то, что вы запрашиваете, невозможно без значения по умолчанию.

Ссылка: раздел под заголовком «Сущности без отфильтрованного свойства никогда не возвращаются запросом» на эту страницу.

person Amber    schedule 26.07.2010
comment
Правильно, потому что все, что вы пытаетесь сделать, ссылаясь на несуществующее поле, будет использовать индекс для этого поля, что приведет к пропуску любых объектов, у которых нет значения для этого поля. - person Amber; 26.07.2010
comment
Обходной путь - предоставить значение по умолчанию для обновленного свойства и запросить это значение. - person Nick Johnson; 26.07.2010