35 votes

Requête GQL avec id numérique dans le visualiseur de banque de données

Je veux construire une requête GQL pour obtenir un objet en utilisant son identifiant numérique. Je le fais dans le visualiseur de banque de données dans la console de gestion des applications, je ne peux donc pas utiliser Model.get_by_id (numeric_id). Quelque chose comme

 SELECT * FROM Model WHERE id = <numeric_id>
 

aussi ne fonctionne pas.

76voto

Saxon Druce Points 9404

Essaye ça:

 SELECT * FROM Model where __key__ = KEY('Model', <numeric_id>)
 

5voto

aij Points 408

Malheureusement, il ne semble pas être un moyen d'écrire une requête équivalente à

SELECT * FROM Model WHERE id = <numeric_id>

ce qui permettrait de sélectionner toutes les entités du Modèle avec l'id donné. Si vous êtes ok avec quelque chose d'équivalent à

SELECT * FROM Model WHERE id = <numeric_id> AND parent IS NULL

vous pouvez utiliser quelque chose comme

SELECT * FROM Model where __key__ = KEY('Model', <numeric_id>)

Si votre entité dispose d'un parent si, vous aurez besoin de spécifier que dans le cadre de la clé, comme

SELECT * FROM Model where __key__ = KEY('ParentModel', <parent_name_or_id>, 'Model', <numeric_id>)

Si le parent a lui-même un parent, vous aurez besoin de spécifier que trop. (Un grand-parent va à gauche de la mère, et ainsi de suite.)

Bien sûr, si vous n'êtes pas limité à GQL (comme si vous êtes à l'aide de Python, Go, ou Java), vous pouvez interroger les clés, de les décoder et de les filtrer par id, puis extraire les entités correspondantes. Mais bien sûr, cela ne fonctionne pas dans la banque de données de la Visionneuse, puisque vous ne pouvez utiliser GQL.

0voto

user1406269 Points 590

Dans mon cas, j'ai dû changer le type d'ID de String à Long

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X