编程语言
首页 > 编程语言> > python-在Mongoengine中的ReferenceField上聚合

python-在Mongoengine中的ReferenceField上聚合

作者:互联网

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

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上不起作用.

我是新来的,有点茫然.任何帮助将不胜感激.谢谢!

解决方法:

我建议使用原始的pymongo和聚合框架,它是由FeedItem.user和$sum组成的简单组.

标签:aggregation,python,mongoengine
来源: https://codeday.me/bug/20191123/2065105.html