В GQL-ссылке рекомендуется использовать ключевое слово IN
со списком значений, а для создания ключа вручную GQL-запрос
SELECT * FROM MyModel WHERE __key__ = KEY('MyModel', 'my_model_key')
будетдобиться успеха.Однако при использовании кода, который, как вы ожидаете, сработает:
SELECT * FROM MyModel WHERE __key__ IN (KEY('MyModel', 'my_model_key1'),
KEY('MyModel', 'my_model_key2'))
в средстве просмотра хранилища данных, появляется жалоба на «Неверная строка запроса GQL».
Как правильно отформатироватьтакой запрос?
ОБНОВЛЕНИЕ: Это невозможно сделать с текущим SDK.Как я отмечаю в своем комментарии, при использовании списка приемлемыми элементами списка могут быть только ссылки (например, :1
или :email
) или int, float, string, boolean или null.
ВТОРОЕ ОБНОВЛЕНИЕ: я исправил ошибку, и теперь можно выполнять такие запросы.Исправление можно найти в Google Code Hosting diff .
PS Я знаю, что есть более эффективные способы сделать это в Python (без создания запроса GQL) и с использованием remote_api,но каждый вызов remote_api считается квотой.В среде, где квота не является (обязательно) бесплатной, очень полезны быстрые и грязные запросы.