2015-04-08 4 views
2

Я пытаюсь выполнить запрос, используя фильтр неравенства, но он не работает: datastore: invalid operator "!=" in filter "Field1 !=" Разве это не поддерживается?Поддерживает ли хранилище данных фильтр неравенства?

Я использую Go, документация которого не упоминается об этом фильтре, но, похоже, поддерживает отрицание, поэтому я задаюсь вопросом, не проблема ли это, или что-то не хватает.

q.Query = q.Query.Filter("Field1 !=", value) 

ответ

1

В doc, он утверждает, что фильтр поддерживает только эти: =, <, <=, >, >=.

Так != не поддерживается. Однако вы можете иметь обходной путь, как это:

q.Query = q.Query.Filter("Field1 >", value).Filter("Field1 <", value) 

, который должен дать результат как !=.

+0

Это действительно неудобно, не так ли? Поскольку python api на самом деле поддерживает его, мне интересно, является ли это ошибкой go sdk –

+0

@ Theuserwithnohat, да, это * IS * странно, и я тоже из фона Python. Я только начал изучать Go и нашел это ограничение * ОЧЕНЬ * раздражает – Anzel

+0

@Theuserwithnohat, кстати, не должен больше напоминать запрос: 'datastore.NewQuery (...). Filter()'? Я думаю, это просто быстрый код, который вы пытаетесь продемонстрировать. – Anzel