2013-03-12 3 views
3

Это похоже на простой вопрос, но я ничего не вижу в class definition.Как игнорировать случай в запросе NDB/DB

Если у меня есть запрос

Video.query(Video.tags.IN(topics))

topics Предстоит как строчные строки Юникода, но Video.tags в основном капитализируется. Я могу пройти через topics и использовать их в первую очередь перед тем, как запросить их, но есть ли способ вообще игнорировать дело?

ответ

12

Невозможно игнорировать регистр в запросе.

Обычно, если вы знаете, что хотите сделать поиск без учета регистра, вы можете сохранить «денормализованный» дубликат данных в нижнем регистре. Всякий раз, когда вы хотите выполнить запрос, вы должны ввести текст перед запросом.

Чтобы уменьшить затраты на запись, возможно, вы хотите только индексировать нижнюю версию, и вам, вероятно, не нужно будет индексировать фактические данные, чувствительные к регистру.

+4

Вы можете автоматизировать денормализацию, добавив вычисленное свойство. См. Https://cloud.google.com/appengine/docs/python/ndb/properties#computed. –

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