yas*_*ser 4 python google-app-engine
在我的appengine python应用程序中,我有分片计数器,用于计算照片的favs数量和视图数量.
我有照片和计数器型号.要按受欢迎程度(最喜欢的数量)订购照片,我应该在我的照片实体(Photo.all().order('num_favs'))中存储最喜欢的#.由于我正在跟踪分片计数器中的fav的数量,我想知道用Counter模型中最新的#fores来更新我的Photo实体的最有效方法是什么?
这是我的模型的样子摘要:
class Photo(db.Model):
photo = db.BlobProperty()
favs = db.IntegerProperty() #num of favs
class Counter(db.Model):
#key_name = key to a model that's to be counted - Photo in this case
name = db.StringProperty() #counted entity key
count = db.IntegerProperty() #count
type = db.StringProperty() #type of model to count, "Photo" in this example
#Very unefficient way of updating my Photo entities with the latest count from Counter:
fav_counters = Counter.all().filter('type =', 'Photo')
for fav in fav_counters:
photo_fav = db.get(fav.name) #get the photo for which the fav count is for
photo_fav.favs = fav.count
photo_fav.put()
Run Code Online (Sandbox Code Playgroud)
如果我能回答以下问题,我将不胜感激:1)基于其计数器订购实体的最有效方式2)如果我按照其计数器订购实体的逻辑是正确的 - 什么是更新的最有效的方法照片实体与他们的柜台?
谢谢!
| 归档时间: |
|
| 查看次数: |
393 次 |
| 最近记录: |