2013-06-26 2 views
3

에서 ReferenceField에 집계, 나는 추적 사이트 활동에 대한 모델이있다.내 응용 프로그램에서 Mongoengine

"최고 사용자"목록을 만들려고합니다. 여기서는 가장 많은 기여를 한 사람들의 목록을 집계합니다 (최소한 초기에는 로그에 표시된 횟수만큼 결정됨).).

나는이 시도 : ( this example 기준)

user_freqs = FeedItem.objects.item_frequencies('user', normalize=True) 
top_users = sorted(user_freqs.items(), key=itemgetter(1), reverse=True)[:10] 

을하지만 item_frequencies()가 ReferenceFields에서 작동하지 않기 때문에 문제가 해결되지 않는다는 것을 깨달았다.

저는이 부분에 익숙하지 않으며 약간 손실이 있습니다. 어떤 도움이라도 대단히 감사하겠습니다. 감사!

답변

3

raw pymongo와 집계 프레임 워크를 사용하는 것이 좋습니다.이 그룹의 간단한 그룹은 FeedItem.user$sum입니다.

+0

감사합니다. __raw__ 키워드를 사용하여 aggregate()를 전달하는 구문을 파악하는 데 어려움을 겪고 있습니다. 문서에서 더 간단한 쿼리를 수행하는 방법을 알 수 있습니다. 여기 내가 잘못이다,이 작업은 다음과 같습니다 'top_users의 =의 User.objects (__ 원시 __ = 총 ({...'분명히 나는 그 작동 방법을 이해하고 있지 않다 (이 모든 w 내 처음이다 Thx 다시 도움을 요청하십시오. – nickgrossman

+1

아, 제 생각에는 "raw pymongo"가 아니라 __raw__ 키워드가 사용 된 것 같습니다. – nickgrossman

+0

예, 감사합니다! – nickgrossman