在许多情况下,使用Google Application Engine了解数据存储区中表(一种)中的行数可能很有用。
没有明确而快速的解决方案。至少我还没找到一个..你呢?
答案 0 :(得分:14)
您可以使用Datastore Statistics有效地获取特定类型的所有实体(即表中的行数)的计数。简单的例子:
from google.appengine.ext.db import stats
kind_stats = stats.KindStat().all().filter("kind_name =", "NameOfYourModel").get()
count = kind_stats.count
您可以找到更详细的示例,了解如何获取最新统计信息here(GAE可能会保留多份统计信息 - 一次用于5分钟,一次用于30分钟,等等。)
请注意,这些统计数据不会不断更新,因此它们会落后于实际数量。如果您确实需要实际计数,那么您可以跟踪自己的自定义统计表中的计数,并在每次创建/删除实体时更新它(尽管这样做的成本会高得多)。
更新03-08-2015 :使用数据存储区统计信息可能会导致过时的结果。如果这不是一个选项,另外两种方法是保持计数器或分片计数器。 (You can read more about those here)。如果您需要实时结果,请仅查看这两个。
答案 1 :(得分:7)
App Engine中没有“选择计数(*)”的概念。您需要执行以下操作之一:
答案 2 :(得分:3)
你可以算不上。使用com.google.appengine.api.datastore.Query进行的Google App Engine中的行如下所示:
int count;
Query qry=new Query("EmpEntity");
DatastoreService datastoreService = DatastoreServiceFactory.getDatastoreService();
count=datastoreService.prepare(qry).countEntities(FetchOptions.Builder.withDefaults());