1. Nessa aula vamos aprender a utilizar agregação em consultas no MongoDB.
  2. Pensando nisso no arquivo 9-agregacao.py e adicione o código a seguir:
from pymongo import MongoClient
import timeit

#1-Estabelece conexão com o MongoDB e o Database
client = MongoClient()
db = client['nobel']

prizes = db['prizes']
laureates = db['laureates']

cursor = db.laureates.find(
    filter = {'bornCountry': 'USA'},
    projection = {'prizes.year': 1},
    limit = 3
)

for doc in cursor:
    print(doc['prizes'])
    
#2-Refatorando consulta com agregações
print('\n')
cursor = db.laureates.aggregate([
    {'$match': {'bornCountry':'USA'}},
    {'$project': {'prizes.year':1}},
    {'$limit': 3}
])

for doc in cursor:
    print(doc['prizes'])
    
#3-Adicionando novas etapas na agregação
print('\n')
from collections import OrderedDict

print(list(db.laureates.aggregate([
    {'$match': {'bornCountry':'USA'}},
    {'$project': {'prizes.year':1, '_id':0}},
    {'$sort': OrderedDict([('prizes.year', 1)])},
    {'$limit': 3},
    {'$skip': 1}
])))

#4-Quantos laureados nascido nos EUA
print(list(db.laureates.aggregate([
    {'$match': {'bornCountry': 'USA'}},
    {'$count': 'qtd_born_usa'}
])))
Para executar o arquivo, execute o comando python .\9-agregacao.py