Używanie bulk_write()
Jak pokazano w filmie, w .bulk_write() można korzystać z kilku operacji:
InsertOne()UpdateOne()/UpdateMany()/ReplaceOne()DeleteOne()/DeleteMany()ReplaceOne()
Czas na porządki w bazie filmów – kilka z tych operacji właśnie się przyda!
Po pierwsze, twój zespół chce oznaczyć wszystkie wysoko oceniane filmy nagrodzone Oscarem jako "featured" na stronie głównej. Po drugie, aby zmniejszyć bałagan, masz usunąć wszystkie filmy wydane dawno temu.
Obie zmiany zgrupujesz w jednej operacji .bulk_write() i wykonasz je razem.
To ćwiczenie jest częścią kursu
Wprowadzenie do MongoDB w Pythonie
Instrukcje do ćwiczenia
- Uzupełnij pierwszą operację w
operations, aby zaktualizować wszystkie filmy z oceną większą lub równą8.0, które zdobyły Oscara; ustaw dla tych filmów nowe pole"featured"naTrue. - Uzupełnij drugą operację w
operations, aby usunąć wszystkie filmy z rokiem premiery wcześniejszym niż1980. - Wykonaj operację
.bulk_write()namovi zapisz wynik jakores. - Wyświetl liczbę zmodyfikowanych i usuniętych dokumentów.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
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.____)