Aan de slagGa gratis aan de slag

bulk_write() gebruiken

Zoals je in de video zag, kun je meerdere bewerkingen gebruiken in .bulk_write():

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

Je doet een lenteschoonmaak in je filmdatabase, waarbij sommige hiervan goed van pas komen!

Eerst wil je team alle hoog beoordeelde, Oscar-winnende films markeren als "featured" op de homepage. Ten tweede, om rommel te verminderen, krijg je de opdracht om alle films van lang geleden te verwijderen.

Je bundelt beide wijzigingen in één .bulk_write()-bewerking om ze samen uit te voeren.

Deze oefening maakt deel uit van de cursus

Introductie tot MongoDB in Python

Cursus bekijken

Oefeninstructies

  • Maak de eerste bewerking in operations af om alle films bij te werken met een rating die groter dan of gelijk aan 8.0 is en die een Oscar hebben gewonnen; stel voor deze films een nieuw veld "featured" in op True.
  • Maak de tweede bewerking in operations af om alle films te verwijderen met een releasejaar vóór 1980.
  • Voer de .bulk_write()-bewerking uit op mov en sla het resultaat op als res.
  • Print hoeveel documenten zijn gewijzigd en hoeveel documenten zijn verwijderd.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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.____)
Code bewerken en uitvoeren