簡體   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