繁体   English   中英

计算数据存储区Google App引擎中的实体

[英]Count entities in datastore Google app engine

在我的GAE申请中,我进行了调查。 例如,一个问题是“你住在哪里?”。 如果我们使用的是google guestbook示例应用程序,则密钥为guestbook,在此我创建了较小的密钥,例如address,content2,content3。 我发布或检索单个结果都没有问题,例如:“ Fred MALE 24 Tokyo”“ content1,性别,年龄,地点”。 但是,我想在另一页上显示参加调查的总人数; 10人回答了调查-3位男性7位女性。 我还想显示诸如“ 10个人回答了东京的调查”之类的结果。 有人可以解释一种使用数据存储区进行计数的方法吗? 如果您的答案是在Google的留言簿示例或GAE的另一个简单示例中,这也将有所帮助。 お愿いします!

有数量,请参阅https://developers.google.com/appengine/docs/python/datastore/queryclass#Query_count。但是请参阅其中的说明。 简而言之:

  1. 它的时间与要计数的元素数量成正比

  2. 如果您有很多元素,由于(1)它将超时,因此您需要使用limit一个分页的客户端。

  3. 它比迭代要快,但要经过一个恒定的因素(因为#1)

对于许多元素,您的方向是要么使用诸如mapreduce之类的东西,要么使用cloud sql(最简单的方法,但使用$),或者自己维护计数(通常通过分片和/或使用memcached来提高性能,并大大减少同时进行的操作可能丢失数据的机会)(因为memcached支持原子加法运算)

您的意思是类似-

从性别='M'的问卷中选择count(*)

我不认为您可以从GAE数据存储中返回

选项是-

  • 从查询返回列表并输出其大小

     @SuppressWarnings("unchecked") public List<Users> Users() { PersistenceManager pm = getPersistenceManagerFactory().getPersistenceManager(); String query = "select from " + User.class.getName(); return (List<User>) pm.newQuery(query).execute(); } 
  • 维护数据存储区中这些字段的数量

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM