Как я могу получить одну запись из хранилища данных Google App Engine? - PullRequest
2 голосов
/ 04 ноября 2010

Использование Google App Engine, GQL и Python:

в моем хранилище данных есть что-то вроде следующего

class Thing(db.Model):
   domain = db.StringProperty(required=True)
   name = db.StringProperty()
   ...more...

и у меня в обработчике

currentThing = db.GqlQuery("SELECT * FROM Thing WHERE domain=:1 LIMIT 1",
                                       "example.com")

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

Я также пытался использовать синтаксис Thing.gql("WHERE domain=:1 LIMIT 1", "example.com") безрезультатно. Кажется, все они возвращают коллекции.

Я работаю в фоновом режиме .NET, и я новичок в Python и App Engine, но я ищу что-то похожее на функцию .FirstOrDefault ().

1 Ответ

6 голосов
/ 04 ноября 2010

Просто добавьте .get() в конец любого из ваших запросов. От документов :

Выполняет запрос, затем возвращает первый результат или None, если запрос не дал результатов.

get () подразумевает «предел», равный 1, и переопределяет предложение LIMIT запроса GQL, если оно есть. Максимум 1 результат извлекается из хранилища данных.

См. Также .fetch(limit, offset=0), что позволит вам получить limit результаты запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...