在google appengine数据存储区中放置已排序的条目

时间:2010-03-03 01:22:14

标签: google-app-engine google-cloud-datastore gql

我想确定特定条目的位置,但是相应的GQL查询正在逃避我。理想情况下,我想知道以下细节,看起来它们应该被数据存储区所知。我似乎无法确定如何确定它。有人可以帮忙吗?

  • 特定条目的放置(在给定的排序中,即由特定的属性)
  • 存在的条目总数(没有检索它们,只有计数)
  • 列表中的下一个条目(我想只要我可以获得展示位置,我就可以通过简单地获取2并获取后者来进行正确的查询以获得下一个)

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

如果您正在使用Python,请查看google-app-engine-ranklist项目,该项目在App Engine数据存储区中实现排名列表。

答案 1 :(得分:0)

GQL非常有限,而且实际上只是为了让人们在使用App Engine数据存储区时更容易过渡到SQL思维模式。你不能做任何你想用GQL语法做的事情。

假设你正在使用python,第二个可以通过调用db.Query或db.GqlQuery对象的.count()方法来完成,但需要注意的是你必须指定要计入的最大数量作为参数。 count(),并且该最大值不能大于1000。

如果没有获取所有条目并查找它,则无法在结果集中找到特定条目。最后一个变得微不足道,因为你已经获取了所有实体,你只需要获取下一个实体。

这些都没有效率;数据存储区不是为了做这种事情而设计的。