在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]


但是我意识到那是行不通的,因为item_frequencies()在ReferenceFields上不起作用。


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


慕妹3146593
浏览 215回答 1
1回答

温温酱

我建议使用原始pymongo和聚合框架,它是onFeedItem.user和的简单组合$sum。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python