2016-06-11 5 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)) 

Обратите внимание, что данные whould быть пустым после печати. так что если вам нужно продолжать работу по этим данным, кроме 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) 

должен предоставить вам список предметов.

Смежные вопросы