Erreur BadArgument de la demande GQL.Comment me débrouiller avec mon dossier ?
-
20-09-2019 - |
Question
Ma requête est essentiellement la suivante :
entries=Entry.all().order("-votes").order("-date").filter("votes >", VOTE_FILTER).fetch(PAGE_SIZE+1, page* PAGE_SIZE)
Je souhaite récupérer N des dernières entrées qui ont un score de vote supérieur à un certain point de référence (VOTE_FILTER).Google dit actuellement que je ne peux pas filtrer sur les «votes» parce que je commande par «date». Je ne vois pas la façon dont je peux le faire comme je le souhaite, donc j'apprécierais tout conseil.
La solution
En supposant que votre « filtre de vote » soit un seuil fixe, vous devez ajouter une propriété à votre modèle qui enregistre s'il est supérieur ou non à ce seuil, vous permettant ainsi d'effectuer un simple test d'égalité pour déterminer quels enregistrements doivent être inclus.
Autres conseils
Oui, il y a Restrictions sur les requêtes car c'est Gql et non SQL.Il semble que vous devrez utiliser un Curseur de requête et rejeter les entrées sur votes <= VOTEFILTER
dans votre code.
La sémantique de Grande table sont certainement différents d'un RDBM et j'essaie toujours de les comprendre également.