在我的应用中,我有一个跟踪网站活动的模型:
class FeedItem(Document):
user = ReferenceField('User')
link = ReferenceField('Link')
issue = ReferenceField('Threat')
action = StringField(required=True, max_length=1000)
datetime = DateTimeField(required=True)
...我会跟踪用户对内容的所作所为。
我正在尝试创建一个“顶级用户”列表,我在那里汇总了贡献最多的用户列表(至少在初始时,根据他们在日志中显示的次数确定)
我试过了:
user_freqs = FeedItem.objects.item_frequencies('user', normalize=True)
top_users = sorted(user_freqs.items(), key=itemgetter(1), reverse=True)[:10]
(基于this example)
但我意识到这不起作用,因为item_frequencies()不适用于ReferenceFields。
我是新手,我有点失落。任何帮助将不胜感激。谢谢!
答案 0 :(得分:3)
我建议使用原始pymongo和聚合框架,它是FeedItem.user
和$sum
上的一个简单组。