Colocação de entrada classificada no Google AppEngine DataStore
-
24-09-2019 - |
Pergunta
Eu gostaria de determinar em que lugar está em uma entrada específica, mas a consulta GQL apropriada está me escapando. Idealmente, eu gostaria de saber os seguintes detalhes, que parecem ser conhecidos pelo DataStore. Eu simplesmente não consigo descobrir como determinar. Alguém pode ajudar?
- A colocação de uma entrada específica (em uma determinada classificação, ou seja, por uma propriedade específica)
- O número total de entradas que existem (sem recuperá -las, apenas a contagem)
- A próxima entrada da lista (eu imagino que, desde que eu possa obter o posicionamento, posso fazer a consulta certa para obter a próxima, simplesmente obtendo 2 e pegando o último)
Alguém pode ajudar?
Solução
Se você estiver usando o python, confira o Google-App-Engine-Ranklist Projeto, que implementa uma lista de classificação no armazenamento de dados do mecanismo de aplicativos.
Outras dicas
O GQL é muito limitado e realmente só existe para dar às pessoas presas em uma mentalidade SQL uma transição um pouco mais fácil para usar o armazenamento de dados do App Engine. Você não pode fazer nada das coisas que deseja fazer com a sintaxe GQL.
Supondo que você esteja usando o Python, o segundo pode ser feito chamando o método .Count () de um objeto DB.Query ou db.gqlquery, com a ressalva de que você deve especificar o número máximo para contar como parâmetro para contar () , e que esse máximo não pode ser maior que 1000.
Você não pode encontrar uma entrada específica no conjunto de resultados sem buscar todos eles e procurá -lo. O último então se torna trivial, já que você já estava buscando todas as entidades e só precisa buscar o próximo.
Nada disso será eficiente; O armazenamento de dados não foi projetado para fazer esse tipo de coisa.