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