No se puede consultar el Datastore de App Engine para obtener un resultado agregado.Estrategia alternativa para consultar la agregación ("agrupar por") en el almacén de datos del motor de aplicaciones de Google
Ejemplo: Tengo una entidad llamada "Post" con los siguientes campos:
Clave de identificación, Cadena apodo, Cadena postText, int puntuación
Tengo muchos apodos diferentes y muchos mensajes de cada apodo en mi almacén de datos.
Si quiero una tabla de clasificación de los diez mejores apodos de las puntuaciones totales, que normalmente tendría SQL del modo siguiente:
select nickname, sum(score) as sumscore
from Post
group by nickname
order by sumscore
limit 10
Este tipo de consulta no es posible en Google API del almacén de datos de App Engine Java (JDO o jpa).
¿Cuáles son las estrategias alternativas que podría utilizar para lograr un resultado similar?
En bruto y brutely, podría cargar todas las entidades Post y calcular la agregación completamente en mi código de aplicación. Esto obviamente no es eficiente en grandes conjuntos de datos.
¿Qué otras estrategias puedo emplear?
Si Google solo actualizó su complemento, DataNucleus haría ese enfoque de "fuerza bruta y bruta" para usted de manera transparente. El código para hacerlo sería solo un puñado de líneas para su complemento, contribuido hace un año ... – DataNucleus
@DataNucleus Tener soporte integrado no lo haría más rápido o más eficiente. –
@Nick, por supuesto que no, pero toda la experiencia del usuario sería mucho más placentera, y la cantidad de código que la gente tiene que escribir sería menor: ese es el negocio en el que estamos – DataNucleus