2009-06-25 4 views
2

J'ai une liste de noms de clés que je veux extraire en vrac (les noms de clé sont stockés dans un StringListProperty attaché à une entité). Mon plan général était de faire:Est-ce que Key.from_path a atteint le magasin de données?

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 ne Key.from_path a frappé le 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 clé dans une propriété de liste comme Je fournis également l'utilisateur requêtes amicales à travers le StringListPropererties.

Répondre

3

Après avoir creusé et questions sur un autre groupe, il se trouve que:

clés sont entièrement déterminées par l'application ID et le chemin, donc il n'y a pas besoin de accéder au magasin de données pour cela. - Nick Johnson

Ou vous pouvez aussi utiliser une liste de db.Key

+2

Est-ce que ça veut dire que je peux obtenir des crédits pour la réponse ici aussi? ;) –

+0

Bien sûr - Mettez une réponse, je vais supprimer celui-ci et ensuite accepter le vôtre;) – Kinlan

0

Les paramètres que vous passez à Key.from_path() contiennent toutes les informations nécessaires pour construire la clé unique donc il n'y a pas besoin pour elle de frapper la magasin de données.

Chaque entité du magasin de données possède une clé qui l'identifie de manière unique. La clé se compose des éléments suivants:

  1. Le type de l'entité, ce qui lui catégorise dans le but de banque de données interroge
  2. Un identificateur de l'entité individuelle, qui peut être soit
    • une clé nom chaîne
    • un nombre entier d'identification numérique
  3. un chemin d'ancêtre en option de localisation de l'entité au sein de la hiérarchie de la banque de données

source: https://developers.google.com/appengine/docs/python/datastore/entities

Questions connexes