Key.from_path colpisce l'archivio dati?
-
22-07-2019 - |
Domanda
Ho un elenco di nomi chiave che voglio recuperare in blocco (i nomi delle chiavi sono memorizzati in StringListProperty collegato a un'entità). Il mio piano generale era di fare:
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)
Le mie domande Key.from_path colpisce l'archivio dati? Sto cercando di essere come il più rapidamente possibile e se Key.from_path colpisce l'archivio dati devo lavorare un altro modo per archiviare una raccolta di chiavi: non ne ho voglia memorizzare l'oggetto chiave in una proprietà dell'elenco poiché fornisco anche l'utente query amichevoli su StringListPropererties.
Soluzione
Dopo aver scavato e domande su un altro gruppo, si scopre che:
Le chiavi??sono interamente determinate dall'app ID e percorso, quindi non è necessario accedere al datastore per questo. - Nick Johnson
Oppure puoi anche usare un Elenco di db.Key
Altri suggerimenti
I parametri passati a Key.from_path ()
contengono tutte le informazioni necessarie per creare la chiave univoca, quindi non è necessario che colpisca il datastore.
Ogni entità nel Datastore ha una chiave che la identifica in modo univoco. La chiave è composta dai seguenti componenti:
- Il tipo di entità che la classifica ai fini delle query di archivio dati
- Un identificatore per la singola entità, che può essere uno dei due
- una stringa di nome chiave
- un ID numerico intero
- Un percorso antenato facoltativo che individua l'entità all'interno della gerarchia del datastore
fonte: https://developers.google.com/appengine/docs/ python / datastore / entità