GROUP
在 App Engine 中是否有某种方法可以通过GQL或Query
方法进行 BY?
我做了一些研究,我读到GQLGROUP BY
中没有,看起来课堂上也没有。Query
如果有任何资源或任何方法可以用Python实现,请告诉我。
编辑
我还读过它可以GROUP BY
用Map Reduce制作。如果有人有这方面的经验,将接受帮助。
谢谢。
GROUP
在 App Engine 中是否有某种方法可以通过GQL或Query
方法进行 BY?
我做了一些研究,我读到GQLGROUP BY
中没有,看起来课堂上也没有。Query
如果有任何资源或任何方法可以用Python实现,请告诉我。
编辑
我还读过它可以GROUP BY
用Map Reduce制作。如果有人有这方面的经验,将接受帮助。
谢谢。
不,数据存储不支持任何类型的数据库端处理或聚合。解决方案是在内存中进行所有后处理。这两种方法是在每个请求中,或者使用map reduce。任何一种解决方案都将始终返回查询中的所有行,但获取行的方式会有所不同。
您无法GROUP BY
使用 appengine 库执行查询。总的来说,这是NoSQL数据库架构的失败(Google 的 BigTable 是其中一种实现)。
根据您可能正在做什么GROUP BY
,另一种方法可能适合您的需求。对于您要查询的每种“类型”模型GROUP BY
,构建一个db.Model
类来表示每个模型。然后直接查询这些类。
或者,如果您预先知道返回组的值,您可以Query#filter()为每个这些值,并将这些查询视为您的GROUP BY
ed 集。
我想解决方案最终取决于您打算如何处理分组数据。如果分组要求是为了简化 HTML 代码中的输出,那么您可以通过重新分组模板中的数据来解决这个问题。
对于计算或其他类型的聚合,您需要在内存中执行此操作。