Je crois qu'une requête Gcl ne peut pas intégrer des appels à accesseur méthodes ou l'extraction d'attributs (beaucoup dans la même veine que le fait qu'il ne peut faire "SELECT * FROM"
chercher des entités entières ou "SELECT __key__ FROM"
pour aller chercher les clés seulement - il ne peut pas choisir les champs comme dans [hypothétique -)] "SELECT this, that FROM
«)
donc, vous devez chercher les clés, puis appelez accesseur de chaque touche .id()
(si vous voulez None
pour les clés. qui n'ont pas d'identifiant mais un nom, utilisez .id_or_name()
si vous préférez obtenir le nom, s'il est disponible, et None
seulement en dernier recours). Par exemple, pour obtenir les ID non Aucun seulement:
thekeys = db.GqlQuery('SELECT __key__ FROM Whatever').fetch(1000)
theids = [k.id() for k in thekeys if k.id() is not None]
L'ID est pas "auto-incrémenté". Ils sont garantis uniques au sein d'un même groupe d'entités et d'entités, mais il est peu probable qu'ils soient continus et ne sont pas garantis d'augmenter. (Sur le serveur de développement, ils sont séquentiels.) – geoffspear