Does Key.from_path bateu o armazenamento de dados?
-
22-07-2019 - |
Pergunta
Eu tenho uma lista de nomes de chave que eu quero a granel buscar (Os nomes das teclas são armazenados em um StringListProperty ligado a uma entidade). Meu plano geral era fazer:
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)
As minhas perguntas não Key.from_path bateu o armazenamento de dados? Estou tentando ser o mais rápido possível e se Key.from_path atinge o armazenamento de dados eu preciso trabalhar outra maneira de armazenar uma coleção de chaves - Eu particularmente não quer armazenar o objeto Key em uma propriedade de lista como eu também fornecem usuário consultas amigáveis ??através dos StringListPropererties.
Solução
Depois de cavar e perguntas sobre outro grupo, verifica-se que:
chaves são inteiramente determinado pelo aplicativo ID eo caminho, por isso não há necessidade de acessar o armazenamento de dados para isso. - Nick Johnson
Ou você também pode usar uma lista de db.Key
Outras dicas
Os parâmetros que você passa para Key.from_path()
conter todas as informações necessárias para construir a única chave de modo que não há necessidade para isso para bater o armazenamento de dados.
Cada entidade no armazenamento de dados tem uma chave que identifica de forma única. A chave consiste nos seguintes componentes:
- O tipo de entidade, que categoriza-lo com o propósito de consultas de armazenamento de dados
- Um identificador para a pessoa física, que pode ser tanto
- uma cadeia de nome de chave
- um inteiro numérico ID
- Um caminho ancestral opcional localizar a entidade dentro da hierarquia de armazenamento de dados
Fonte: https://developers.google.com/appengine/docs/ python / datastore / entidades