3

GROUP在 App Engine 中是否有某种方法可以通过GQLQuery方法进行 BY?

我做了一些研究,我读到GQLGROUP BY中没有,看起来课堂上也没有。Query

如果有任何资源或任何方法可以用Python实现,请告诉我。


编辑

我还读过它可以GROUP BYMap Reduce制作。如果有人有这方面的经验,将接受帮助。

谢谢。

4

3 回答 3

4

不,数据存储不支持任何类型的数据库端处理或聚合。解决方案是在内存中进行所有后处理。这两种方法是在每个请求中,或者使用map reduce。任何一种解决方案都将始终返回查询中的所有行,但获取行的方式会有所不同。

于 2012-02-08T23:59:32.230 回答
2

您无法GROUP BY使用 appengine 库执行查询。总的来说,这是NoSQL数据库架构的失败(Google 的 BigTable 是其中一种实现)。

根据您可能正在做什么GROUP BY,另一种方法可能适合您的需求。对于您要查询的每种“类型”模型GROUP BY,构建一个db.Model类来表示每个模型。然后直接查询这些类。

或者,如果您预先知道返回组的值,您可以Query#filter()为每个这些值,并将这些查询视为您的GROUP BYed 集。

于 2012-02-08T23:55:38.410 回答
1

我想解决方案最终取决于您打算如何处理分组数据。如果分组要求是为了简化 HTML 代码中的输出,那么您可以通过重新分组模板中的数据来解决这个问题。

对于计算或其他类型的聚合,您需要在内存中执行此操作。

于 2012-02-09T13:45:42.870 回答