Zacznij terazZacznij za darmo

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

Zobacz kurs

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" na True.
  • Uzupełnij drugą operację w operations, aby usunąć wszystkie filmy z rokiem premiery wcześniejszym niż 1980.
  • Wykonaj operację .bulk_write() na mov i zapisz wynik jako res.
  • 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.____)
Edytuj i uruchom kod