2016-06-11 2 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であると仮定します。データは印刷後の空であることをwhould

pprint(list(data)) 

注意。あなたは変数にlist(data)保存することをデータでの作業を継続し、その変数と対話する必要がある場合に:もちろん

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

Hey Andriy、私のリストの要素は次の通りです '{u'_id ':7、u'team_id':2、u'team_name ':u'Aston Villa'}}' 個人キーの値を取得する方法 – aman

+0

element.get( 'id')または要素['id'] –

1

、これはカーソルオブジェクトを返します。

list(cursor) 

は、アイテムのリストを取得する必要があります。

関連する問題