在我的应用程序中,我有一个跟踪网站活动的模型:
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上不起作用。
我是新来的,有点不知所措。任何帮助都将不胜感激。谢谢!
最佳答案
我建议使用raw pymongo和聚合框架,它是一个简单的分组,在FeedItem.user
和$sum
上。