2015-11-10 2 views
0

J'ai une table des projets avec deux de ses colonnes comme «langue» et «tag».Comment exécuter cette requête dans GQL [moteur Google App]?

Après que l'utilisateur donne un input, je veux sortie tous les projets dont language est input ou tag est input.

requête Sql pour ci-dessus serait cela,

requête Sql: Select * from TableName where language='input' OR tag='input'

J'ai essayé d'exécuter le même dans gql mais en vain. Quelle devrait être la requête dans Gql pour sortir les données de la manière mentionnée ci-dessus.

Répondre

1

GQL ne pas OR, donc en gros, vous devez faire deux requêtes distinctes et les résultats syndicaux:

Select * from TableName where language='input' 
Select * from TableName where tag='input' 

Vous devez joindre les résultats de votre côté de l'application, la Console Cloud ne prend pas en charge ces choses aussi.

référence Voir GQL: https://cloud.google.com/datastore/docs/apis/gql/gql_reference

1

Je ne sais pas si est obligatoire pour vous d'utiliser GQL, mais si vous êtes en mesure d'éviter, vous pouvez utiliser le filtre NDB à la place.

results = TableName.query(ndb.OR(TableName.language == 'input', 
         TableName.tag == 'input')) 
for result in results: 
    ....your code here... 

Plus d'informations sur: https://cloud.google.com/appengine/docs/python/ndb/queries