2016-06-11 73 views
1

通過MongoDb中的以下查詢,我可以從整個數據中獲取所有團隊。如何在pymongo中應用聚合

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

我需要導入這個數組隊在python通過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,所以乾脆將其轉換爲列出並打印,列出:

pprint(list(data)) 

注意,數據是對子級打印後空。所以如果你需要繼續工作,對這些數據保存list(data)變量,並與該變量相互作用:

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

Hey Andriy,我的清單中的一個元素如下 '{u'_id':{u'team_code':7,u'team_id':2,u'team_name':u'Aston Villa'}}' 我如何獲得個人密鑰的值。 – aman

+0

element.get('id')或者元素['id'] –

1

當然,這會返回一個遊標對象。

list(cursor) 

應該給你一個項目清單。