Usando bulk_write()
Como você viu no vídeo, dá para usar várias operações dentro de .bulk_write():
InsertOne()UpdateOne()/UpdateMany()/ReplaceOne()DeleteOne()/DeleteMany()ReplaceOne()
Você está fazendo uma faxina de primavera no seu banco de dados de filmes, e algumas dessas operações vão ser muito úteis!
Primeiro, sua equipe quer destacar na página inicial todos os filmes muito bem avaliados que ganharam um Oscar, marcando-os como "featured". Depois, para reduzir a bagunça, você foi orientado a remover todos os filmes lançados há muito tempo.
Você vai agrupar as duas mudanças em uma única operação .bulk_write() para executá-las juntas.
Este exercicio faz parte do curso
Introdução ao MongoDB em Python
Instruções do exercicio
- Complete a primeira operação em
operationspara atualizar todos os filmes com nota maior ou igual a8.0e que ganharam um Oscar; defina um novo campo"featured"comoTruepara esses filmes. - Complete a segunda operação em
operationspara excluir todos os filmes com ano de lançamento anterior a1980. - Execute a operação
.bulk_write()emmove armazene o resultado emres. - Imprima quantos documentos foram modificados e quantos documentos foram excluídos.
exercicio interativo prático
Tente este exercicio completando este código de exemplo.
from pymongo import UpdateMany, DeleteMany
operations = [
# Set featured to True for all movies with rating > 8 that won oscar
____(
{ "rating" : { ____: ____}, "won_oscar": ____ },
{ "$set": { ____: ____} }
),
# Remove all movies with release_year before 1980
____(
{ "release_year": { ____: ____} }
)
]
# Perform bulk write
res = mov.____
# Print out counts
print(res.____)
print(res.____)