Comece agoraComece grátis

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

Ver curso

Instruções do exercicio

  • Complete a primeira operação em operations para atualizar todos os filmes com nota maior ou igual a 8.0 e que ganharam um Oscar; defina um novo campo "featured" como True para esses filmes.
  • Complete a segunda operação em operations para excluir todos os filmes com ano de lançamento anterior a 1980.
  • Execute a operação .bulk_write() em mov e armazene o resultado em res.
  • 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.____)
Editar e Executar Código