2014-02-21 5 views
0

Я не могу запросить поля datetime в движке Google. Я пытаюсь выполнить следующий запрос -Запрос в datetime в Google app engine

SELECT * FROM Email WHERE cmp_id='52d836ed1057c341b800013a' AND pushed_to_crm=TRUE AND ss_time >= DATETIME('2014-01-17 00:00:00') 

я уверен, что это должно возвращать несколько строк - я имею в виду, что есть данные в базе данных, которые должны быть возвращены.

Но я получаю ошибку в выполнении этого запроса -

Learn more about GQL syntax. 
no matching index found. 
The suggested index for this query is: 
- kind: Email 
    properties: 
    - name: cmp_id 
    - name: pushed_to_crm 
    - name: ss_time 

Поле ss_time является db.DateTimeProperty(). Есть что-то, чего я не хватает?

ответ

1

Сообщение об ошибке достаточно ясно. Вы должны добавить индекс для своей электронной почты со следующими атрибутами: cmp_id, pushed_to_crm и ss_time.

Вы можете сделать это, добавив следующую строку в ваш index.yaml:

- kind: Email 
    properties: 
    - name: cmp_id 
    - name: pushed_to_crm 
    - name: ss_time 
+0

Я создал индексы и развернуто. Я вижу, что индексы созданы, но я все равно получаю ту же ошибку. – Siddharth

+0

О! Я понял ... вам нужно создавать индексы для каждого запроса. Поэтому, если запрос объекта электронной почты использует два свойства, вам нужно создать индекс для этих двух свойств. Если снова у вас есть запрос по объекту электронной почты для двух разных свойств, вам нужно создать индекс для этих двух свойств отдельно. – Siddharth

Смежные вопросы