LoslegenKostenlos loslegen

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

Einführung in MongoDB mit Python

Kurs anzeigen

Anleitung zur Übung

  • 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 Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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