LoslegenKostenlos starten

bulk_write() verwenden

Wie du im Video gesehen hast, kannst du mehrere Operationen in .bulk_write() verwenden:

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

Du machst gerade einen Frühjahrsputz in deiner Filmdatenbank – da kommen einige davon wie gerufen!

Zuerst möchte dein Team alle hoch bewerteten, Oscar-prämierten Filme auf der Startseite als "featured" hervorheben. Zweitens soll zur Entrümpelung alles entfernt werden, was schon sehr lange zurückliegt.

Du fasst beide Änderungen in einer einzigen .bulk_write()-Operation zusammen, um sie gemeinsam auszuführen.

Diese Übung ist Teil des Kurses

<Kurs>Einführung in MongoDB mit Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • Vervollständige die erste Operation in operations, um alle Filme zu aktualisieren, deren Bewertung größer oder gleich 8.0 ist und die einen Oscar gewonnen haben; setze für diese Filme ein neues Feld "featured" auf True.
  • Vervollständige die zweite Operation in operations, um alle Filme mit einem Veröffentlichungsjahr vor 1980 zu löschen.
  • Führe die .bulk_write()-Operation auf mov aus und speichere das Ergebnis als res.
  • Gib aus, wie viele Dokumente geändert und wie viele Dokumente gelöscht wurden.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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 bearbeiten und ausführen