在我的应用程序中,我有一个跟踪网站活动的模型:

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上。

10-04 10:29