Key.from_path at-il atteint le magasin de données?
-
22-07-2019 - |
Question
J'ai une liste de noms de clés que je veux récupérer en bloc (les noms de clé sont stockés dans un StringListProperty attaché à une entité). Mon plan général était de faire:
usernames = userrefInstance.users # A collection of strings on another
model.
keys = [Key.from_path('User', key_name) for username in usernames]
users = db.get(keys)
Mes questions Key.from_path at-il accès au magasin de données? J'essaie d'être aussi rapide que possible et si Key.from_path frappe le magasin de données, je dois travailler une autre façon de stocker une collection de clés - je ne veux pas particulièrement stocker l'objet Key dans une propriété de liste car je fournis également à l'utilisateur requêtes conviviales à travers StringListPropererties.
La solution
Après avoir creusé et interrogé un autre groupe, il s'avère que:
Les cléssont entièrement déterminées par l'application ID et le chemin, il n'y a donc pas besoin de accédez au magasin de données pour cela. - Nick Johnson
Vous pouvez également utiliser une liste de db.Key
Autres conseils
Les paramètres que vous transmettez à Key.from_path ()
contiennent toutes les informations nécessaires à la création de la clé unique, de sorte qu'elle n'a pas besoin de s'afficher dans le magasin de données.
Chaque entité du magasin de données a une clé qui l'identifie de manière unique. La clé comprend les composants suivants:
- Le type de l'entité qui le catégorise aux fins des requêtes de magasin de données
- Un identifiant pour l'entité individuelle, qui peut être soit
- une chaîne de nom de clé
- un identifiant numérique entier
- Un chemin d'ancêtre facultatif localisant l'entité dans la hiérarchie du magasin de données
source: https://developers.google.com/appengine/docs/ python / magasin de données / entités