CommencerCommencer gratuitement

Utiliser bulk_write()

Comme vous l’avez vu dans la vidéo, vous pouvez utiliser plusieurs opérations dans .bulk_write() :

  • InsertOne()
  • UpdateOne() / UpdateMany() / ReplaceOne()
  • DeleteOne() / DeleteMany()
  • ReplaceOne()

Vous faites un peu de ménage de printemps dans votre base de données de films, et certaines de ces opérations vont vous être utiles !

D’abord, votre équipe veut mettre en avant sur la page d’accueil tous les films très bien notés et ayant remporté un Oscar, en les étiquetant "featured". Ensuite, pour réduire l’encombrement, on vous demande de supprimer tous les films sortis il y a longtemps.

Vous allez regrouper ces deux changements dans une seule opération .bulk_write() pour les exécuter ensemble.

Cet exercice fait partie du cours

Introduction à MongoDB en Python

Afficher le cours

Instructions

  • Complétez la première opération dans operations pour mettre à jour tous les films dont la note est supérieure ou égale à 8.0 et qui ont remporté un Oscar ; définissez un nouveau champ "featured" à True pour ces films.
  • Complétez la deuxième opération dans operations pour supprimer tous les films dont l’année de sortie est antérieure à 1980.
  • Exécutez l’opération .bulk_write() sur mov et stockez le résultat dans res.
  • Affichez combien de documents ont été modifiés et combien ont été supprimés.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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.____)
Modifier et exécuter le code