Використання 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.____)