Хранилище данных App Engine может вернуть целые сущности или только ключи сущностей из запроса? - PullRequest
0 голосов
/ 31 марта 2011

Я читаю документацию по Google App Engine и обнаружил эту строку, которую трудно понять

Хранилище данных App Engine может возвращать целые объекты или только ключи объектов из запроса.

что это значит? Есть filter(property_operator, value) и fetch(limit, offset=0)

И я считаю, что поддержка django-nonrel values() в App Engine. Так что же это значит?

Ответы [ 2 ]

1 голос
/ 31 марта 2011

Это просто означает, что если вам нужен только ключ для объекта (уникальный идентификатор, по которому он может быть найден), а не все его свойства, вы можете избежать дополнительных затрат на получение всех этих свойств.Вы можете сделать это с помощью параметра keys_only.

Например,

SomeModel.all(keys_only=True).fetch(10)

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

Thisможет дать вам больше информации о разнице между ключами и полными объектами: http://code.google.com/appengine/docs/python/datastore/entities.html

1 голос
/ 31 марта 2011

Вы можете сделать стандартный запрос, например так:

results = MyModel.all().filter('foo =', 'bar').fetch(20)

Это вернет список сущностей (экземпляры db.Model). Или вы можете выполнить запрос только по ключам, например:

results = MyModel.all(keys_only=True).filter('foo =', 'bar').fetch(20)

Это вернет только ключи соответствующих сущностей (экземпляры db.Key) и будет выполняться быстрее, чем первый запрос.

...