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>Übungsanweisungen
- 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 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.____)