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
Anleitung zur Übung
- Vervollständige die erste Operation in
operations, um alle Filme zu aktualisieren, deren Bewertung größer oder gleich8.0ist und die einen Oscar gewonnen haben; setze für diese Filme ein neues Feld"featured"aufTrue. - Vervollständige die zweite Operation in
operations, um alle Filme mit einem Veröffentlichungsjahr vor1980zu löschen. - Führe die
.bulk_write()-Operation aufmovaus und speichere das Ergebnis alsres. - 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.____)