ПочатиПочніть безкоштовно

Використання bulk_write()

Як ви бачили у відео, у .bulk_write() можна використовувати кілька операцій:

  • InsertOne()
  • UpdateOne() / UpdateMany() / ReplaceOne()
  • DeleteOne() / DeleteMany()
  • ReplaceOne()

Ви наводите лад у вашій базі фільмів — тут знадобляться деякі з цих операцій!

Спершу ваша команда хоче позначити всі високооцінені фільми — лауреати «Оскара» — як "featured" на головній сторінці. Далі, щоб зменшити безлад, вам доручили вилучити всі фільми, випущені дуже давно.

Ви згрупуєте обидві зміни в одну операцію .bulk_write(), щоб виконати їх разом.

Ця вправа є частиною курсу

Вступ до MongoDB у Python

Переглянути курс

Інструкції до вправи

  • Завершіть першу операцію в operations, щоб оновити всі фільми з рейтингом, не нижчим за 8.0, які здобули «Оскар»; для цих фільмів установіть нове поле "featured" у значення True.
  • Завершіть другу операцію в operations, щоб видалити всі фільми з роком релізу раніше 1980.
  • Виконайте операцію .bulk_write() над mov і збережіть результат у змінній res.
  • Виведіть, скільки документів було змінено та скільки документів було видалено.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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.____)
Редагувати та запускати код