2015-04-08 1 views
2

J'essaie d'exécuter une requête en utilisant le filtre d'inégalité, mais il y a des erreurs: datastore: invalid operator "!=" in filter "Field1 !=" N'est-ce pas supporté?Le magasin de données prend-il en charge le filtre d'inégalité?

J'utilise Go dont la documentation ne mentionne pas ce filtre mais les python docs semblent prendre en charge la négation, donc je me demande si c'est un problème spécifique ou si quelque chose me manque.

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

Répondre

1

Dans le doc, il indique que le filtre ne supporte que ceux-ci: =, <, <=, >, >=.

Donc, != n'est pas supporté. Cependant, vous pouvez avoir une solution de contournement comme ceci:

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

qui devrait donner le résultat que !=.

+0

C'est vraiment gênant, n'est-ce pas? Puisque le python api le supporte réellement, je me demande si c'est un bug go sdk –

+0

@Theuserwithnohat, oui c'est * IS * étrange et je viens de l'arrière-plan Python aussi. Je viens de commencer à apprendre Go et trouvé cette limitation * TRES * ennuyeux – Anzel

+0

@Theuserwithnohat, à propos, ne devrait pas être la requête plus comme: 'datastore.NewQuery (...). Filter()'? Je suppose que c'est juste un code rapide que vous essayez de démontrer le point. – Anzel