Ist Key.from_path den Datenspeicher schlagen?
-
22-07-2019 - |
Frage
Ich habe eine Liste von Schlüsselnamen, die ich bulk wollen holen (Die Tastennamen sind in einem StringListProperty an eine Entität gespeichert). Mein allgemeiner Plan war, zu tun:
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)
Meine Fragen hat Key.from_path den Datenspeicher zu schlagen? Ich versuche, so zu sein, schnell wie möglich und wenn Key.from_path trifft auf den Datenspeicher ich arbeiten müssen eine weitere Möglichkeit, eine Sammlung von Schlüssel zu speichern - ich besonders nicht wollen speichern Sie das Key-Objekt in einer Liste Eigenschaft als ich auch Benutzer bereitstellen freundliche Anfragen über die StringListPropererties.
Lösung
Nach dem Graben und Fragen zu einer anderen Gruppe, es stellt sich heraus, dass:
Tasten sind vollständig von der App bestimmt ID und der Weg, so gibt es keine Notwendigkeit, Zugriff auf den Datenspeicher für diese. - Nick Johnson
Oder Sie können auch eine Liste der db.Key
verwendenAndere Tipps
Die Parameter, die Sie Key.from_path()
passieren enthalten alle notwendigen Informationen, den eindeutigen Schlüssel zu bauen, so dass es keine Notwendigkeit für den Datenspeicher zu treffen.
Jede Entität im Datenspeicher hat einen Schlüssel, der es eindeutig identifiziert. Der Schlüssel besteht aus folgenden Komponenten:
- Die Art der Einheit, die es für den Zweck der Datenspeicherabfragen stuft
- Eine Kennung für die einzelnen Unternehmen, die entweder sein kann
- ein Schlüssel name string
- eine ganze Zahl numerische ID
- Ein optionaler Vorfahr Pfad der Einheit innerhalb der Datenspeicher-Hierarchie Ortung
Quelle: https://developers.google.com/appengine/docs/ python / Datenspeicher / Entitäten