2016-06-11 2 views
1

MongoDb에서 다음 쿼리를 통해 전체 데이터에서 모든 팀을 얻습니다.pymongo에서 집계를 적용하는 방법

db.player_level_data.aggregate([{$group : {_id: {team_name : "$team_name"}}}]).toArray() 

이 팀 배열을 파이썬에서 pymongo.i를 통해 가져와야합니다. 다음 코드를 시도했습니다.

pipe = [ 
{'$group': {'_id': {'team_name' : "$team_name"}}} 
] 
data = db.player_level_data.aggregate(pipeline=pipe) 
pprint (data) 

그러나 pymongo 커서 개체가 인쇄되었습니다. 이것에 대한 아이디어. 감사합니다

+0

다른 업데이트 .. 나는 첫 번째 팀 이름을 인쇄 한'pprint (data.next())를 인쇄 해 보았습니다. 이것은 커서 객체를 반복 한 후에 모든 팀 이름을 가져올 수 있음을 의미합니다. 커서 객체를 피할 수있는 방법이 있습니까? – aman

답변

1

난 그렇게 간단하게 나열하고 목록 인쇄로 변환, 커서 오브젝트가 generator 가정 : 데이터를 인쇄 한 후 비어 whould 것을

pprint(list(data)) 

참고. 당신이 변수에 list(data) 저장 데이터에 대한 작업을 계속하고 그 변수와 상호 작용해야하는 경우 너무 : 물론

l_data = list(data) 
pprint(l_data) 
+0

안녕하세요 Andriy, 내 목록의 요소는 다음과 같습니다. '{u'_id ': 7, u'team_id': 2, u'team_name ': u'Aston Villa'}} ' 개인 키의 값을 어떻게 얻습니까? – aman

+0

element.get ('id') 또는 요소 [ 'id'] –

1

,이 커서 객체를 반환합니다.

list(cursor) 

당신에게 항목 목록을 제공해야합니다.

관련 문제